1

私はテレポット モジュールを使用して、python を使用してテレグラム ボットを作成しています。ユーザーがそのメッセージに返信するかどうかを確認するには、送信メッセージのメッセージ ID を取得する必要があります。以下のコードは、私がやりたいことを明確にしています。

import telepot

bot = telepot.Bot('Some Token')

def handle(msg):
    chat_id = msg['chat']['id']
    message_id = msg['message_id']                  # I can get Id of incoming messages here 
    command = msg['text']

    if command == '/command':                       # Message (incoming) 1 sent by user
        bot.sendMessage(chat_id, 'Some message')    # Message (outgoing) 2 sent by bot

    elif ('''msg was in reply of message 2'''):     # Message (incoming) 3 sent by user    (MY PROBLEM IS HERE!!!)
        # Do something
        pass


bot.message_loop(handle, run_forever = 'Running ...')

上記のコードでわかるように、メッセージ 3 がメッセージ 2 への返信であったかどうかを確認する必要があります。ただし、メッセージ 2 の ID を取得できません。 IDを取得できます。)では、どうすればそれを達成できますか?

ありがとう。

4

1 に答える 1

5

message_id送信されたメッセージを取得できるはずです。

>>> import telepot
>>> from pprint import pprint
>>> bot = telepot.Bot('TOKEN')
>>> sent = bot.sendMessage(9999999, 'Hello')
>>> pprint(sent)
{u'chat': {u'first_name': u'Nick', u'id': 9999999, u'type': u'private'},
 u'date': 1473567584,
 u'from': {u'first_name': u'My Bot',
           u'id': 111111111,
           u'username': u'MyBot'},
 u'message_id': 21756,
 u'text': u'Hello'}
于 2016-09-11T04:24:20.510 に答える