Skip to main content

No project description provided

Project description

Firebase Persistence for python-telegram-bot

PyPI

This is an implementation of python-telegram-bot BasePersistence class that uses Google Firebase as persistence back-end. This has a very nice advantage of being able to look at your user_data, chat_data, bot_data and convesations real-time using the firebase web app.

Installation

The library obviously requires (but does not install) python-telegram-bot. It also requires and installs officeial library foor Google Firebase: firebase-admin

pip install ptb-firebase-persistence

Usage

Before you start: obtain credentials from firebase

First of all you need to obtain firebase credentials, that look like this:

{
  "type": "service_account",
  "project_id": "YOUR_ID",
  "private_key_id": "YOUR_PRIVATE_KEY",
  "private_key": "-----BEGIN PRIVATE KEY-----\nMII...EwQ=\n-----END PRIVATE KEY-----\n",
  "client_email": "firebase-adminsdk-SOME_STRING@SOME_DOMAIN.iam.gserviceaccount.com",
  "client_id": "11743776666698009",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-SOMES_STRING.iam.gserviceaccount.com"
}

and the firebase database url that looks like this, something like https://YOUR_APP.firebaseio.com

Instantiation

From environment variables (recommended)

Store the database URL in an environment variable FIREBASE_URL and the config as a json string in an environment variable FIREBASE_CREDENTIALS.

After that instantiation is as easy as:

from ptb_firebase_persistence import FirebasePersistence
from telegram.ext import Updater


my_persistence = FirebasePersistence.from_environment()

updater: Updater = Updater(
    'BOT_TOKEN',
    persistence=my_persistence,
    use_context=True,
)

Direct instantiation

You can also just pass the firebase credentials as URL as simple init params:

from ptb_firebase_persistence import FirebasePersistence
from telegram.ext import Updater


my_persistence = FirebasePersistence(database_url='YOUR_DATABASE_URL', credentials='YOUR_CREDENTIALS_DICT')

updater: Updater = Updater(
    'BOT_TOKEN',
    persistence=my_persistence,
    use_context=True,
)

That's it! You can now watch your data change live on Firebase.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ptb_firebase_persistence-0.1.2.tar.gz (3.3 kB view hashes)

Uploaded Source

Built Distribution

ptb_firebase_persistence-0.1.2-py3-none-any.whl (3.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page