在Hook.io上使用Python从Telegram bot获取POST数据

时间:2017-05-30 12:58:03

标签: python webhooks telegram-webhook hook.io

我正在尝试使用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)

0 个答案:

没有答案