Skip to main content

Unofficial Client for Yandex Messenger Bot API

Project description

Unofficial Yandex Messenger Bot API library

Obtaining Messenger bot token: link

Usage: pip install yambot-client

# Add handlers to MessengerBot
# Supported handlers: text, command, button, regex, any

from yambot import MessengerBot

yb = MessengerBot('bot_token')

# Add command handler ex. when user sends /my_command
@yb.add_handler(command='/my_command')
def my_handler1(update):
    yb.send_message('test1', update)

# Add text handler ex. when user sends some_text
@yb.add_handler(text='some_text')
def my_handler2(update):
    yb.send_message('test2', update)

# Add button handler. Button must have callback_data with 'cmd': '/my_button' JSON object
# For more details about CallbackData see API description: https://yandex.ru/dev/messenger/doc/ru/data-types#button 
@yb.add_handler(button='/my_button')
def my_handler3(update):
    yb.send_message('test3', update)

# Add regex handler. Provide regular expression that will be tested against user text message 
@yb.add_handler(regex='\d{5}')
def my_handler3(update):
    yb.send_message('test4', update)

# Handler that will be applied when no other handlers match
@yb.add_handler(any=True)
def process_any(update):
    yb.send_message('Unknown text', update)

Available Bot methods:

# Send text message
yb.send_message('text', update)

# Send image
yb.send_image(image_data, update)

# Send buttons
yb.send_inline_keyboard('Choose:', buttons, update)

# Delete message (from group chat)
yb.delete_message(message_id=123, chat_id='0/0/group-id')

# Delete message (from private chat)
yb.delete_message(message_id=456, login='user@example.com')

# Delete message (from thread)
yb.delete_message(message_id=789, chat_id='0/0/group-id', thread_id=100)

Button example for send_inline_keyboard():

button1 = {'text': 'Button 1', 'callback_data': {'cmd': '/button_1'}}
button2 = {'text': 'Button 2', 'callback_data': {'cmd': '/button_2'}}

buttons = [button1, button2]

Example: link

Update 0.1.0 (Latest)

Improvements:

  • ✅ Fixed bugs
  • ✅ Added error handling
  • ✅ Implemented rate limiting
  • ✅ Added support for Polls API (create_poll, get_poll_results, get_poll_voters)
  • ✅ Added support for Chat Management API (create_chat, create_channel, update_members, get_user_link)
  • ✅ Added new type models: Button, User, Vote, Sticker, ForwardedMessage
  • ✅ Enhanced send_message() with additional parameters: payload_id, reply_message_id, disable_notification, important, thread_id
  • ✅ Fixed naming: poolingpolling

New Methods:

# Polls
yb.create_poll(title, answers, update)
yb.get_poll_results(message_id, update)
yb.get_poll_voters(message_id, answer_id, update)

# Chat Management
yb.create_chat(name, description, members, admins)
yb.create_channel(name, description, subscribers, admins)
yb.update_members(chat_id, members, admins, remove)
yb.get_user_link(login)

Important Changes:

  • Update.chat is now required (not Optional)
  • Update.images type changed from List[Tuple[...]] to List[List[Image]]

Deprecations:

  • start_pooling() → use start_polling() instead
  • pool_interval parameter → use poll_interval instead

Update 0.0.5

  • Added bot send gallery method yb.send_gallery(images, update) where images is a list of image objects same as insend_image method
  • Bot send methods will return JSON response with message_id
  • Added optional argument disable_web_page_preview to yb.send_message(images, update, disable_web_page_preview=True) method. Default value is True

Update 0.0.4

  • Added logger support. Create bot instance with log_level=logging.DEBUG argument for debug output. By default log level is INFO.
    yb = MessengerBot('bot_token', log_level=logging.DEBUG)

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

yambot_client-0.1.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yambot_client-0.1.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file yambot_client-0.1.0.tar.gz.

File metadata

  • Download URL: yambot_client-0.1.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for yambot_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 13b171d1d07ea674533542fa9a04efc67fdabace21f86f61ee0e70b802fee721
MD5 0aeffe21522837904a4fe935a2ed577b
BLAKE2b-256 555604f7d48fbfbd1d47d030aa9b77d43e2fbfb45ad718b7c980e096c93d4589

See more details on using hashes here.

File details

Details for the file yambot_client-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: yambot_client-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for yambot_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f4e2daf66208f1c2bb57f65fc39f6a13d5c5a049c58216dcb9b02b99267be250
MD5 000c66fe30fc23e4e8b5be8369c6bec9
BLAKE2b-256 e3b64cfd38a2bb258130e2ba3f3d588e927fb64f9ab3899ee6ef2a6005da8d46

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page