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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file ptb_firebase_persistence-0.1.2.tar.gz.

File metadata

  • Download URL: ptb_firebase_persistence-0.1.2.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.7.7 Linux/5.3.0-1028-azure

File hashes

Hashes for ptb_firebase_persistence-0.1.2.tar.gz
Algorithm Hash digest
SHA256 642a03302968a6a7dd9799ed6908f486451765c6fd55feb9de3056522cf8f5c6
MD5 10185d181f5e1cedd898584ffa197a4b
BLAKE2b-256 56db4bf8d99a2e40816257d138121f24ccb2d461d2acbf07bb42801e3830ad95

See more details on using hashes here.

File details

Details for the file ptb_firebase_persistence-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for ptb_firebase_persistence-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0131d4a1f5e481ef019839bfb3b708732132d20df5f1729142be8c090e34380b
MD5 fe923264283dd3067c415016cbd28edc
BLAKE2b-256 bd63726472a036fe9ab711ea4d9d7f703aff695e04777c05cbfa964d43a876e3

See more details on using hashes here.

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