我试图创建我的第一个电码机器人,将其代码作为亚马逊Lambda实例托管,我想我应该将某些东西返回给Webhook,因为它总是说“来自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”:true,“结果”:{“ url”:“ https://t2rt9guj3h.execute-api.us-west-2.amazonaws.com/prod/instabot”,“ has_custom_certificate”:false,“ pending_update_count”:19,“ last_error_date”:1489331750,“ last_error_message”:“来自Webhook的错误响应:502错误的网关“,” max_connections“:40}}

根据机器人助手的说法,wh需要2XX代码响应...

有什么想法吗?

最佳答案

根据机器人助手的说法,wh需要2XX代码响应...


这是真的。您的最后声明应该是

return {
    statusCode: 200
}


如果没有返回成功的响应代码,Telegram将不知道如何处理它,这就是为什么看到HTTP 502 Bad Gateway的原因。我也打了一段时间:)

10-07 12:55