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. If update has chat or thread id message will be sent to chat or thread
# Otherwise message will be sent directly to user
yb.send_message('text', update)

# Send image. image_data can be either ASCII string or bytes object
yb.send_image(image_data, update)

# Send buttons. buttons must be a list of Button objects
yb.send_inline_keyboard(buttons, update)

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.0.9 (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.0.9.tar.gz (14.5 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.0.9-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yambot_client-0.0.9.tar.gz
  • Upload date:
  • Size: 14.5 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.0.9.tar.gz
Algorithm Hash digest
SHA256 91db401f6f254860d47801a35014a26879b01adfdfcb789b2f2288eae663caed
MD5 8c8d985716e5c1419d8ab6cc58a28921
BLAKE2b-256 73c1c784b7610893a9e18b3c9ccc46c7c508bc114c2428e20d22a1b9d76621c8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: yambot_client-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 13.8 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.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 fd9af5b0d49eaa7732196819f8955bafd7b80cc68d2d8e1e879b9317ac57f29f
MD5 051ab5121e7cc6bb7dc368b1aecf99a9
BLAKE2b-256 c9e0efa4c8c1968b03a8609bc71d3e79a47e1078fbd2989322ace312dcc827ae

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