Skip to main content

Python Yandex messenger bot api

Project description

Yandex messenger bot python

It is still under development and it has regular updates, do not forget to update it regularly

Getting started

pip install yandex-bot-py

Depends requests >= 2.32.3

Example

from yandex_bot import Client, Button, Message, User

bot = Client(os.getenv("YANDEX_BOT_KEY"))

@bot.on_message(phrase="/start")
def command_start(message):
    btn = Button(text="What is your name", phrase="/name")
    bot.send_message(message.user.login, "Select an action", inline_keyboard=[btn])


@bot.on_message(phrase="/name")
def command_start(message):
    bot.send_message(message.user.login, "Type your name")
    bot.register_next_step_handler(message.user.login, type_your_name)


def type_your_name(message):
    bot.send_message(message.user.login, f"Your name is {message.text}")


bot.run()

Message processing

To process all messages starting with a specific phrase, use decorator @bot.on_message. Specify in the parameters phrase to handle messages that begin with the specified phrase.

phrase checks the first word of the text from the user

@bot.on_message(phrase="/start")
def command_start(message):
    bot.send_message(message.user.login, f"Hello, {message.user.login}")

To send a message use bot.send_message. You can provide chat_id or login there.

bot.send_message(message.user.login, "Hello, I'm bot")

inline_keyboard is used to add buttons to a chat with a user. Just create a Button class and provide text (The text on the button). You can provide phrase for fast binding to the processing function, or you can provide any callback_data to a Button and it will be returned on Message class in callback_data.

btn = Button(text="My button", phrase="/data", callback_data={"foo": "bar", "bar": "foo"})
bot.send_message(message.user.login, "Select an action", inline_keyboard=[btn])

Handling next step

For example, to wait for a response from a user to a question, you can use bot.register_next_step_handler. This method will store the session with the current user. The method includes:

  1. user_login - the username of the user from whom to wait for the message;
  2. callback - the handler function
@bot.on_message(phrase="/name")
def get_user_name(message):
    bot.send_message(message.user.login, "Type your name")
    bot.register_next_step_handler(message.user.login, type_your_name)

def type_your_name(message):
    bot.send_message(message.user.login, f"Your name is {message.text}")

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

yandex_bot_py-1.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

yandex_bot_py-1.0-py2.py3-none-any.whl (8.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file yandex_bot_py-1.0.tar.gz.

File metadata

  • Download URL: yandex_bot_py-1.0.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for yandex_bot_py-1.0.tar.gz
Algorithm Hash digest
SHA256 2e173bc63881e26c34c4f9c730346eb29a41324851a7d20c8fe4bdc5754afcd7
MD5 2ce47a2c4aba5e0736eb3f0945176841
BLAKE2b-256 a72b15b4f86681297c6d4df235af9259c49f0f0c0d8ffec046908c04a5efd6ff

See more details on using hashes here.

File details

Details for the file yandex_bot_py-1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for yandex_bot_py-1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c3db415b6e9f7f9ceba5b677e97a11f00eedf5208b229ca4080171576dcc8b89
MD5 886f7352354ed382ac14895908b4e5b0
BLAKE2b-256 520d4c37a18b97bb83f968bae2fcc3d3a595c0105dc72687c02d4c65cf4d1937

See more details on using hashes here.

Supported by

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