我正在尝试使用Python在Telegram上创建一个简单的echo bot,作为hook.io上的微服务托管。
问题:无法从Hook对象解析POST数据。
我在另一个机器人的here尝试了JavaScript方法,运行正常。 试图在Python中做同样的事情如下:
import requests
bottoken = 'TOKEN_GOES_HERE'
baseURL = 'https://api.telegram.org/bot'
if __name__ == '__main__':
data = {
"chat_id" : Hook['params']['message']['chat']['id'],
"text" : Hook['params']['message']['text']
}
sendURL = baseURL + bottoken + "/sendMessage"
requests.post(sendURL, json=data)
但没有得到任何回应。
我通过在Hook ['params']上执行json.dumps后跟json.loads解决了这个问题。
这是完整的代码:
import requests
import json
bottoken = 'TOKEN_GOES_HERE'
baseURL = 'http://api.telegram.org/bot'
if __name__ == '__main__':
data = json.loads(json.dumps(Hook['params']))
chat_id = data['message']['chat']['id']
sendmsg = data['message']['text']
data = { "chat_id" : chat_id, "text" : sendmsg }
sendURL = baseURL + bottoken + "/sendMessage"
payload = json.dumps(data)
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
requests.post(sendURL, data=payload, headers=headers, verify=False)