2

我正在尝试使用 Python 在 Telegram 上制作一个简单的回声机器人,作为 hook.io 上的微服务托管。

问题:无法解析来自 Hook 对象的 POST 数据。

我在另一个机器人中尝试了这里的 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)
4

0 回答 0