Python SDK for Telegram event tracking and analytics.
Project description
Telegram Mini App analytics SDK for Python
The Telemetree Python SDK provides a convenient way to track and analyze Telegram events using the Telemetree service. With this SDK, you can easily capture and send Telegram events to the Telemetree platform for further analysis and insights.
Features
- Automatically capture Telegram events and send them to Telemetree
- Encrypt event data using a hybrid approach with RSA and AES encryption
- Customize the events and commands to track
- Simple and intuitive API for easy integration
Installation
You can install the Telemetree Python SDK using pip:
pip install telemetree
Usage
- Import the Telemetree SDK:
from telemetree import TelemetreeClient
- Initialize the client with your API key and project ID:
api_key = "YOUR_API_KEY"
project_id = "YOUR_PROJECT_ID"
client = TelemetreeClient(api_key, project_id)
- Connect the client to your webhook, or pass the event data directly:
# Option 1: Pass raw Telegram webhook data directly
# The SDK will automatically detect and transform Telegram webhook data
webhook_data = {
"update_id": 123456789,
"message": {
"message_id": 1,
"from": {
"id": 987654321,
"is_bot": False,
"first_name": "John",
"last_name": "Doe",
"username": "johndoe",
"language_code": "en"
},
"chat": {
"id": 987654321,
"first_name": "John",
"last_name": "Doe",
"username": "johndoe",
"type": "private"
},
"date": 1621234567,
"text": "Hello, world!"
}
}
response_status_code = client.track(webhook_data)
print(response_status_code)
# Option 2: Pass a pre-formatted event
custom_event = {
"event_type": "custom_event",
"telegram_id": 987654321,
"username": "johndoe",
"firstname": "John",
"lastname": "Doe"
}
response_status_code = client.track(custom_event)
print(response_status_code)
Automatic Telegram Webhook Handling
The Telemetree SDK automatically detects and transforms Telegram webhook data into the required format. When you pass a raw Telegram webhook payload to the track
method, the SDK will:
- Detect that it's a Telegram webhook based on the presence of the
update_id
field and other Telegram-specific fields - Extract the user ID and other user information from the appropriate location in the webhook data
- Transform the data into the format required by Telemetree
- Track the event with the appropriate event type (e.g.,
telegram_message
,telegram_callback_query
, etc.)
This means you can directly pass the webhook data from your Telegram bot to Telemetree without any manual transformation:
@app.route("/webhook", methods=["POST"])
async def telegram_webhook():
data = await request.json()
# Pass the raw webhook data directly to Telemetree
telemetree_client.track(data)
# Process the webhook data for your bot
# ...
return {"status": "ok"}
Configuration
The Telemetree Python SDK provides some configuration options that you can customize:
auto_capture_telegram
: Enables or disables automatic capturing of Telegram events (default:True
)auto_capture_telegram_events
: Specifies the types of Telegram events to capture automatically (default:["message"]
)auto_capture_commands
: Specifies the Telegram commands to capture automatically (default:["/start", "/help"]
)
Other configuration options include the Telemetree API endpoint, encryption keys, and logging settings. You can modify these options either within the Telemetree dashboard or by updating the config.py
file in the SDK.
Contributing
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request on the GitHub repository.
License
This project is licensed under the MIT License. See the LICENSE file for more information.
Support
If you have any questions or need assistance, please contact our support team at support@ton.solutions.
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
File details
Details for the file telemetree-0.4.0.tar.gz
.
File metadata
- Download URL: telemetree-0.4.0.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | af79f8e71bfb7bf1468d980049a2b11d0568c23418a57851c97565e778eaf702 |
|
MD5 | 4e6a186aa76dcbbe3acdf5bcf80e6341 |
|
BLAKE2b-256 | e06b88572a18c6f3a24b9c1f3ae35ff82c28d31e1fc68ed5a08dde2fd6870888 |
File details
Details for the file telemetree-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: telemetree-0.4.0-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd24da82977369281819250b2e2384a3431be2627d89b43868fc9d755754f61f |
|
MD5 | 6ef28d0b3e4b55c2b965c8361d0c8061 |
|
BLAKE2b-256 | 94e3100e1aef163bfcd6667986bae0b5bf567eef6d7ed8e36dc8c33fbb86aa70 |