Помощник написания кода на С++

10. Telegram боты

Обращение к боту происходит с помощью GET или POST запроса вида:

https://api.telegram.org/bot*токен_вашего_бота*/*название метода*?*параметр метода*=*значение*&*параметр метода*=*значение*...
К примеру: https://api.telegram.org/bot1234567890:AAAAaaA0aaAaaa0A0AAa0AaaAaaaa0aaAaa/sendMessage?chat_id=656597957&text=hello

Список всех методов есть в документации, но вам потребуются не все. Самые полезные:
1. getMe
- От сюда можно получить различную информацию о боте.
2. getUpdates?offset=*число*&timeout=*количество секунд*
- Без этого метода вы не сможете никак узнать, что вашему боту написали. Offset - номер последнего обработанного события, первый вызов можно сделать 0, но дальше вам нужно следить, какие события вы обработали, иначе сервер вам будет отправлять события, которые отправлял раньше. Timeout - количество секунд, которое сервер ждут, если нет событий. По окончанию сервер отправит пустой список событий.
3. sendMessage?chat_id=*число*&text=*текст*
- Отправляет сообщение человеку (или боту) с индентификатором chat_id с соотв. текстом.
4. https://core.telegram.org/bots/api#editmessagetext

Совершать запросы можно с помощью команды из библиотеки requests:

import requests


nachStroka = "https://api.telegram.org/bot5989105828:AAGBrnE2zfBgdy8Q5TKi3CpzVfxxn3shGsg"

def send(id, txt):
    result = requests.get(nachStroka+"/sendMessage?chat_id="+str(id)+'&text=' + txt)


#result = requests.get(nachStroka+"/sendMessage?chat_id=656597957&text=q")
offset = 0

while True:
result = requests.get(nachStroka+"/getUpdates?offset=" + str(offset) + '&timeout=100').json()
for update in result['result']:
    try:
        text = update['message']['text']
        id = update['message']['from']['id']
        if text[:6] == '/print':
            for x in text[6:].split():
                send(id,x)
    except KeyError:
        pass
    offset = update['update_id'] + 1


https://core.telegram.org/bots/api -Официальная документация, всегда в помощь.

Мой  chat_id=656597957