telegram
3
总安装量
2
周安装量
#54948
全站排名
安装命令
npx skills add https://github.com/ninehills/skills --skill telegram
Agent 安装分布
amp
2
cline
2
opencode
2
cursor
2
continue
2
kimi-cli
2
Skill 文档
Telegram Bot API Skill
You have full access to the Telegram Bot API. Use CLI commands for common operations, and direct API calls for everything else.
Getting the Bot Token
BOT_TOKEN=$(curl -s http://localhost:23001/api/settings | jq -r '.telegram.botToken')
API Call Pattern
# JSON body (most methods)
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/<METHOD>" \
-H "Content-Type: application/json" \
-d '{ ... }'
# Multipart form (file uploads)
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/<METHOD>" \
-F "chat_id=<CHAT_ID>" \
-F "photo=@/path/to/file.jpg" \
-F "caption=optional caption"
Full API docs: https://core.telegram.org/bots/api
CLI Quick Commands
# Current chat (ALMA_CHAT_ID auto-set)
alma send photo /path/to/img.jpg "caption"
alma send file /path/to/doc.pdf "caption"
alma send audio /path/to/song.mp3
alma send video /path/to/vid.mp4
# Group operations
alma group list
alma group send <chatId> "text"
alma group send-photo <chatId> /path "caption"
alma group send-document <chatId> /path "caption"
alma group send-video <chatId> /path "caption"
alma group history <chatId> [limit]
alma group search <chatId> "query"
alma group context <chatId>
alma group pin <chatId> <msgId>
alma group unpin <chatId> [msgId]
alma group leave <chatId>
alma group patrol
# Direct message & message mgmt
alma dm <userId> "message"
alma msg delete <chatId> <msgId>
alma msg react <chatId> <msgId> <emoji> # Add reaction to a message (e.g. â¤ï¸ ð ð)
alma msg sticker <chatId> <sticker_file_id> # Send a sticker (use file_id from received stickers)
alma msg sticker-search [set_name] # List sticker sets (no args) or index a specific set
alma msg sticker-find <emoji> # Find stickers by emoji across all indexed sets
All Telegram Bot API Methods
Sending Messages
| Method | Description |
|---|---|
sendMessage |
Send text message. Params: chat_id, text, parse_mode (HTML/Markdown), reply_parameters, reply_markup, message_thread_id, link_preview_options |
sendPhoto |
Send photo. chat_id, photo (file_id/URL/upload), caption, has_spoiler |
sendDocument |
Send file. chat_id, document, caption, thumbnail |
sendVideo |
Send video. chat_id, video, caption, duration, width, height, has_spoiler |
sendAnimation |
Send GIF. chat_id, animation, caption, has_spoiler |
sendAudio |
Send audio. chat_id, audio, caption, duration, performer, title |
sendVoice |
Send voice message. chat_id, voice, caption, duration |
sendVideoNote |
Send round video. chat_id, video_note, duration, length |
sendSticker |
Send sticker. chat_id, sticker (file_id/URL/upload) |
sendLocation |
Send location. chat_id, latitude, longitude, live_period |
sendVenue |
Send venue. chat_id, latitude, longitude, title, address |
sendContact |
Send contact. chat_id, phone_number, first_name, last_name |
sendPoll |
Send poll. chat_id, question, options ([{text:…}]), is_anonymous, type (quiz/regular), allows_multiple_answers |
sendDice |
Send dice/slot. chat_id, emoji (ð²ð¯ðâ½ð³ð°) |
sendMediaGroup |
Send album (2-10 items). chat_id, media ([{type,media,caption}]) |
sendChatAction |
Show typing/uploading status. chat_id, action (typing/upload_photo/upload_video/upload_document/record_voice/record_video/etc) |
sendMessageDraft |
Stream partial message. chat_id, text, business_connection_id |
Forwarding & Copying
| Method | Description |
|---|---|
forwardMessage |
Forward message. chat_id (target), from_chat_id, message_id |
forwardMessages |
Forward multiple. chat_id, from_chat_id, message_ids ([array]) |
copyMessage |
Copy without “Forwarded” header. chat_id, from_chat_id, message_id, caption |
copyMessages |
Copy multiple. chat_id, from_chat_id, message_ids |
Editing Messages
| Method | Description |
|---|---|
editMessageText |
Edit text. chat_id, message_id, text, parse_mode, reply_markup |
editMessageCaption |
Edit caption. chat_id, message_id, caption |
editMessageMedia |
Edit media. chat_id, message_id, media |
editMessageReplyMarkup |
Edit inline keyboard. chat_id, message_id, reply_markup |
editMessageLiveLocation |
Update live location. chat_id, message_id, latitude, longitude |
stopMessageLiveLocation |
Stop live location. chat_id, message_id |
deleteMessage |
Delete message. chat_id, message_id |
deleteMessages |
Delete multiple. chat_id, message_ids ([array]) |
Reactions
| Method | Description |
|---|---|
setMessageReaction |
React to message. chat_id, message_id, reaction ([{“type”:”emoji”,”emoji”:”ð”}]), is_big |
Chat Management
| Method | Description |
|---|---|
getChat |
Get chat info. chat_id |
getChatMemberCount |
Member count. chat_id |
getChatMember |
Get one member’s info. chat_id, user_id |
getChatAdministrators |
List admins. chat_id |
setChatTitle |
Set title. chat_id, title |
setChatDescription |
Set description. chat_id, description |
setChatPhoto |
Set photo. chat_id, photo (upload) |
deleteChatPhoto |
Delete photo. chat_id |
setChatPermissions |
Set default permissions. chat_id, permissions ({can_send_messages, can_send_photos, …}) |
setChatStickerSet |
Set sticker set. chat_id, sticker_set_name |
deleteChatStickerSet |
Remove sticker set. chat_id |
leaveChat |
Leave chat. chat_id |
pinChatMessage |
Pin message. chat_id, message_id, disable_notification |
unpinChatMessage |
Unpin message. chat_id, message_id |
unpinAllChatMessages |
Unpin all. chat_id |
Member Management
| Method | Description |
|---|---|
banChatMember |
Ban user. chat_id, user_id, until_date, revoke_messages |
unbanChatMember |
Unban user. chat_id, user_id, only_if_banned |
restrictChatMember |
Restrict user. chat_id, user_id, permissions, until_date |
promoteChatMember |
Promote to admin. chat_id, user_id, can_change_info, can_post_messages, can_edit_messages, can_delete_messages, can_invite_users, can_restrict_members, can_pin_messages, can_promote_members, can_manage_video_chats, can_manage_chat |
setChatAdministratorCustomTitle |
Set admin title. chat_id, user_id, custom_title |
approveChatJoinRequest |
Approve join request. chat_id, user_id |
declineChatJoinRequest |
Decline join request. chat_id, user_id |
Invite Links
| Method | Description |
|---|---|
exportChatInviteLink |
Create new primary link. chat_id |
createChatInviteLink |
Create invite link. chat_id, name, expire_date, member_limit, creates_join_request |
editChatInviteLink |
Edit invite link. chat_id, invite_link, … |
revokeChatInviteLink |
Revoke link. chat_id, invite_link |
createChatSubscriptionInviteLink |
Paid subscription link. chat_id, subscription_period, subscription_price |
Forum Topics
| Method | Description |
|---|---|
createForumTopic |
Create topic. chat_id, name, icon_color, icon_custom_emoji_id |
editForumTopic |
Edit topic. chat_id, message_thread_id, name, icon_custom_emoji_id |
closeForumTopic |
Close topic. chat_id, message_thread_id |
reopenForumTopic |
Reopen topic. chat_id, message_thread_id |
deleteForumTopic |
Delete topic. chat_id, message_thread_id |
unpinAllForumTopicMessages |
Unpin all in topic. chat_id, message_thread_id |
getForumTopicIconStickers |
Get available topic icons |
editGeneralForumTopic |
Edit General topic. chat_id, name |
closeGeneralForumTopic |
Close General. chat_id |
reopenGeneralForumTopic |
Reopen General. chat_id |
hideGeneralForumTopic |
Hide General. chat_id |
unhideGeneralForumTopic |
Unhide General. chat_id |
Bot Profile
| Method | Description |
|---|---|
getMe |
Get bot info |
setMyName |
Set bot name. name, language_code |
getMyName |
Get bot name |
setMyDescription |
Set bot description. description, language_code |
getMyDescription |
Get bot description |
setMyShortDescription |
Set short description. short_description |
getMyShortDescription |
Get short description |
setMyProfilePhoto |
Set bot profile photo. photo |
removeMyProfilePhoto |
Remove bot profile photo |
setMyCommands |
Set command list. commands ([{command,description}]), scope, language_code |
getMyCommands |
Get commands |
deleteMyCommands |
Delete commands |
setChatMenuButton |
Set menu button. chat_id, menu_button |
getChatMenuButton |
Get menu button |
setMyDefaultAdministratorRights |
Set default admin rights. rights, for_channels |
getMyDefaultAdministratorRights |
Get default admin rights |
User Info
| Method | Description |
|---|---|
getUserProfilePhotos |
Get profile photos. user_id, offset, limit |
getUserProfileAudios |
Get profile audios. user_id |
Files
| Method | Description |
|---|---|
getFile |
Get file download info. file_id. Download: https://api.telegram.org/file/bot<TOKEN>/<file_path> |
Inline Keyboards & Callbacks
// reply_markup for inline buttons
{
"inline_keyboard": [
[{"text": "Button 1", "callback_data": "btn1"}, {"text": "URL", "url": "https://example.com"}],
[{"text": "Row 2", "callback_data": "btn2"}]
]
}
| Method | Description |
|---|---|
answerCallbackQuery |
Answer callback from inline button. callback_query_id, text, show_alert |
Stickers
| Method | Description |
|---|---|
sendSticker |
Send sticker. chat_id, sticker |
getStickerSet |
Get sticker set. name |
getCustomEmojiStickers |
Get custom emoji. custom_emoji_ids |
createNewStickerSet |
Create sticker set. user_id, name, title, stickers |
addStickerToSet |
Add sticker. user_id, name, sticker |
setStickerPositionInSet |
Reorder. sticker, position |
deleteStickerFromSet |
Delete sticker. sticker |
setStickerSetTitle |
Set title. name, title |
setStickerSetThumbnail |
Set thumbnail. name, user_id, thumbnail |
Payments
| Method | Description |
|---|---|
sendInvoice |
Send invoice. chat_id, title, description, payload, currency, prices |
createInvoiceLink |
Create payment link |
answerShippingQuery |
Answer shipping. shipping_query_id, ok, shipping_options |
answerPreCheckoutQuery |
Answer checkout. pre_checkout_query_id, ok |
refundStarPayment |
Refund stars. user_id, telegram_payment_charge_id |
Games
| Method | Description |
|---|---|
sendGame |
Send game. chat_id, game_short_name |
setGameScore |
Set score. user_id, score, chat_id, message_id |
getGameHighScores |
Get scores. user_id, chat_id, message_id |
Common Examples
Post to a channel
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-H "Content-Type: application/json" \
-d '{"chat_id": "@channel_username", "text": "Hello!"}'
Send photo with inline keyboard
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendPhoto" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "'$ALMA_CHAT_ID'",
"photo": "https://example.com/image.jpg",
"caption": "Check this out!",
"reply_markup": {"inline_keyboard": [[{"text":"ð Like","callback_data":"like"},{"text":"ð","callback_data":"dislike"}]]}
}'
Forward message between chats
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/forwardMessage" \
-H "Content-Type: application/json" \
-d '{"chat_id": "<TARGET>", "from_chat_id": "<SOURCE>", "message_id": 123}'
Create a poll
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendPoll" \
-H "Content-Type: application/json" \
-d '{"chat_id": "'$ALMA_CHAT_ID'", "question": "Best language?", "options": [{"text":"Rust"},{"text":"TypeScript"},{"text":"Python"}], "is_anonymous": false}'
Reply to a specific message
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-H "Content-Type: application/json" \
-d '{"chat_id": "'$ALMA_CHAT_ID'", "text": "Replying!", "reply_parameters": {"message_id": 5678}}'
Promote user to admin
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/promoteChatMember" \
-H "Content-Type: application/json" \
-d '{"chat_id": "<GROUP>", "user_id": 12345, "can_pin_messages": true, "can_invite_users": true}'
Upload and send a local file
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendDocument" \
-F "chat_id=$ALMA_CHAT_ID" \
-F "document=@/path/to/file.pdf" \
-F "caption=Here's the document"
Send album (media group)
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMediaGroup" \
-H "Content-Type: application/json" \
-d '{"chat_id": "'$ALMA_CHAT_ID'", "media": [
{"type":"photo","media":"https://example.com/1.jpg","caption":"First"},
{"type":"photo","media":"https://example.com/2.jpg"}
]}'
Create invite link
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/createChatInviteLink" \
-H "Content-Type: application/json" \
-d '{"chat_id": "<GROUP>", "name": "My Link", "member_limit": 100}'
Tips
- Channel posts: Use
@channel_usernameor numeric chat_id (starts with-100) - Bot must be admin to: post to channels, pin, delete others’ messages, ban, manage topics
- ALMA_CHAT_ID is auto-set in Bash tool env â use it for current chat
- File uploads: Use
-Fmultipart form, not-dJSON - parse_mode: Use
"HTML"for<b>bold</b> <i>italic</i> <code>code</code> <a href="url">link</a> - Group IDs are negative; user IDs are positive
- Message IDs are visible as
[msg:xxx]in chat - For methods not listed here, check https://core.telegram.org/bots/api