Telegram

Learn how to use Telegram with Composio

Overview

SLUG: TELEGRAM

Description

Telegram is a cloud-based messaging app with a focus on security and speed. Build bots to send messages, manage chats, and interact with users.

Authentication Details

bearer_token
stringRequired

Connecting to Telegram

Create an auth config

Use the dashboard to create an auth config for the Telegram toolkit. This allows you to connect multiple Telegram accounts to Composio for agents to use.

1

Select App

Navigate to Telegram.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Telegram Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4telegram_auth_config_id = "ac_YOUR_TELEGRAM_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": {"generic_api_key": user_api_key}}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Telegram for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, telegram_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Telegram toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["TELEGRAM"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Send Message

Description

Send a text message to a telegram chat using the bot api.

Action Parameters

chat_id
integerRequired
disable_notification
boolean
disable_web_page_preview
boolean
parse_mode
string
reply_markup
string
reply_to_message_id
integer
text
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Answer Callback Query

Description

Use this method to send answers to callback queries sent from inline keyboards. the answer will be displayed to the user as a notification at the top of the chat screen or as an alert.

Action Parameters

cache_time
integer
callback_query_id
stringRequired
show_alert
boolean
text
string
url
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Message

Description

Delete a message, including service messages, with certain limitations.

Action Parameters

chat_id
integerRequired
message_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Edit Message

Description

Edit text messages sent by the bot.

Action Parameters

chat_id
integer
disable_web_page_preview
boolean
inline_message_id
string
message_id
integer
parse_mode
string
reply_markup
string
text
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Forward Message

Description

Forward messages of any kind. service messages can't be forwarded.

Action Parameters

chat_id
integerRequired
disable_notification
boolean
from_chat_id
integerRequired
message_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Chat Info

Description

Get up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.).

Action Parameters

chat_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Chat Administrators

Description

Get a list of administrators in a chat. on success, returns an array of chatmember objects that contains information about all chat administrators except other bots.

Action Parameters

chat_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Chat History

Description

Get chat history messages. note: this uses the getupdates method with specific parameters to retrieve historical messages.

Action Parameters

chat_id
integerRequired
limit
integer
message_id
integer
offset
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Chat Members Count

Description

Get the number of members in a chat. the bot must be an administrator in the chat for this to work.

Action Parameters

chat_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Bot Info

Description

Get basic information about the bot using the bot api getme method.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Updates

Description

Use this method to receive incoming updates using long polling. an array of update objects is returned.

Action Parameters

allowed_updates
array
limit
integer
offset
integer
timeout
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Send Document

Description

Send general files (documents) to a telegram chat using the bot api.

Action Parameters

caption
string
chat_id
integerRequired
disable_content_type_detection
boolean
disable_notification
boolean
document
stringRequired
parse_mode
string
reply_markup
string
reply_to_message_id
integer
thumbnail
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Send Location

Description

Send point on the map location to a telegram chat using the bot api.

Action Parameters

chat_id
integerRequired
disable_notification
boolean
heading
integer
horizontal_accuracy
number
latitude
numberRequired
live_period
integer
longitude
numberRequired
proximity_alert_radius
integer
reply_markup
string
reply_to_message_id
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Send Photo

Description

Send photos to a telegram chat using the bot api.

Action Parameters

caption
string
chat_id
integerRequired
disable_notification
boolean
parse_mode
string
photo
stringRequired
reply_markup
string
reply_to_message_id
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Send Poll

Description

Send a native poll to a telegram chat using the bot api.

Action Parameters

allows_multiple_answers
boolean
chat_id
integerRequired
close_date
integer
correct_option_id
integer
disable_notification
boolean
explanation
string
explanation_parse_mode
string
is_anonymous
boolean
is_closed
boolean
open_period
integer
options
arrayRequired
question
stringRequired
reply_markup
string
reply_to_message_id
integer
type
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Set Bot Commands

Description

Use this method to change the list of the bot's commands. see https://core.telegram.org/bots#commands for more details about bot commands.

Action Parameters

commands
arrayRequired
language_code
string
scope
string

Action Response

data
objectRequired
error
string
successful
booleanRequired