我试图创建我的第一个托管代码的电报机器人作为亚马逊lambda实例,我想我应该向webhook返回一些东西,因为它一直在说#34;来自webhook的错误响应:502 Bad Gateway"。
以下是我的代码的一部分:
def msgSend(text, chat_id):
url = URL + "sendMessage?text={}&chat_id={}".format(text, chat_id)
response = requests.get(url)
content = response.content.decode("utf8")
return content
def handle(msg):
sender = msg['from']['username']
id_gruppo = msg['chat']['id']
if sender == NAME:
testo = msg['text']
usernames = [x.replace('@','') for x in rx.findall(text)]
map(foo, usernames)
msgSend(confirm_mess, id_group)
return
def main(event, context):
response = ast.literal_eval(event['body'])
handle(response['message'])
return {
'something': 'something'
}

实际上这个过程运行得很好,我的lambda接收消息,一切都像魅力一样,除了一件事,确认消息一遍又一遍地发送,webhooks永远不会将消息标记为已读。
这是getWebHookInfo的响应: {" OK":真,"导致" {" URL":" https://t2rt9guj3h.execute-api.us-west-2.amazonaws.com/prod/instabot"" has_custom_certificate& #34;:false," pending_update_count":19," last_error_date":1489331750," last_error_message":"来自webhook的错误回复:502 Bad Gateway& #34;" MAX_CONNECTIONS" 40}}
根据机器人助手,wh需要2XX代码响应......
有任何想法吗?
答案 0 :(得分:0)
根据机器人助手的说明,需要2XX代码响应...
是真的。您最后的声明应该是
return {
statusCode: 200
}
如果没有返回成功的响应代码,Telegram将不知道如何处理它,这就是为什么看到HTTP 502 Bad Gateway
的原因。我也打了一段时间:)