No project description provided
Project description
Firebase Persistence for python-telegram-bot
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ptb_firebase_persistence-0.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 642a03302968a6a7dd9799ed6908f486451765c6fd55feb9de3056522cf8f5c6 |
|
MD5 | 10185d181f5e1cedd898584ffa197a4b |
|
BLAKE2b-256 | 56db4bf8d99a2e40816257d138121f24ccb2d461d2acbf07bb42801e3830ad95 |
Hashes for ptb_firebase_persistence-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0131d4a1f5e481ef019839bfb3b708732132d20df5f1729142be8c090e34380b |
|
MD5 | fe923264283dd3067c415016cbd28edc |
|
BLAKE2b-256 | bd63726472a036fe9ab711ea4d9d7f703aff695e04777c05cbfa964d43a876e3 |