Задать вопрос

Как получить результат в методе getUpdates Telegram API?

Добрый день.

Пытаюсь получить данные используя метод getUpdates Telegram API - нашел вот такое руководство.

Пишу своему боту - t1Bot
Потом использую метод:
import requests
BOT_TOKEN = '132176590:AAE2dUVDjj9epTIIe6KIYtlvvmnc1S-YHSM'

MethodGetUpdates = 'https://api.telegram.org/bot{token}/getUpdates'.format(token=BOT_TOKEN)


while True:
    response = requests.post(MethodGetUpdates)
    result = response.json()
    print result


Получаю следующий результат
>>

{u'ok': True, u'result': []}

Ведь должен быть результат такого вида:
{
"result": [
{
"message": {
"text": "/start",
"date": 1435176541,
"chat": {
"username": "yourusername",
"first_name": "yourfirstname",
"id": 65535
},
-----

Но результат пустой.
Что я делаю не так?

Спасибо.
  • Вопрос задан
  • 89390 просмотров
Подписаться 4 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
crackedmind
@crackedmind
web-developer
А что вы ему и куда пишете? Если в группу, то по умолчанию он принимает сообщения начинающиеся на / и где упоминают имя бота. Чтобы принимал весь текст /setprivacy disabled сделайте у BotFather
Ответ написан
Afres
@Afres
Product Owner
Данный метод возвращает только новые сообщения. Если бот уже реагировал на некие отправляемые ему сообщения, то он их уже получил (скорее всего этим же методом) и они помечены сервером Telegram как полученные. Соответственно, при каждом новом запросе они возвращаться уже не будут, иначе вы бы каждый раз получали всю историю сообщений с момента создания бота. В данном случае, у вас есть два варианта:

Вести лог получаемых ботом сообщений и пользоваться им на своё усмотрение.
Поиграться с параметром offset метода getUpdates. Подробнее здесь: https://core.telegram.org/bots/api#getupdates

Например: https://api.telegram.org/botXXXXXXXXXX/getUpdates?...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы