【发布时间】:2016-07-15 18:30:08
【问题描述】:
我正在开发一个 facebook 迷你聊天机器人,我遇到了一个问题,即机器人一遍又一遍地接收相同的消息,即使它已经回答了消息。
it keeps receiving the same text from FB and replying to it over and over
def message_handler(request):
data = json.loads(request.body.decode('utf-8'))
if data and data['object'] == 'page':
for pageEntry in data['entry']:
print "nombre de message", len(pageEntry['messaging'])
for messagingEvent in pageEntry['messaging']:
if messagingEvent.get('optin'):
print "optin", messagingEvent
receivedAuthentication(messagingEvent)
elif messagingEvent.get('message'):
print "message", messagingEvent
receivedMessage(messagingEvent)
elif messagingEvent.get('delivery'):
print "delivery", messagingEvent
receivedDeliveryConfirmation(messagingEvent)
elif messagingEvent.get('postback'):
print "postback", messagingEvent
receivedPostback(messagingEvent)
else:
print "UnHandled"
return HttpResponse(status=200)
def receivedMessage(event):
senderID = event.get('sender').get('id')
message = event.get('message')
messageText = message.get('text')
messageAttachments = message.get('attachments')
if messageText:
if messageText == 'image':
sendImageMessage(senderID)
elif messageText == 'button':
sendButtonMessage(senderID)
elif messageText == 'generic':
sendGenericMessage(senderID)
elif messageText == 'receipt':
sendReceiptMessage(senderID)
elif messageText == 'hey':
sendTextMessage(senderID, "Get it. Gimme a moment to process it :). Will get back to you in a moment")
send_seen()
send_typing()
words = words_gen()
sendTextMessage(senderID, words)
def callSendAPI(messageData):
requests.post(
url='https://graph.facebook.com/v2.6/me/messages?access_token=' + config.page_token,
data=json.dumps(messageData),
headers={"Content-Type":"application/json"}
)
我知道我每次都需要发送一个状态 200,我这样做了,但仍然一遍又一遍地收到相同的文本
这是我订阅的活动
对话、message_deliveries、message_reads、messages、messaging_optins、messaging_postbacks、图片
我删除了 messaging_echoes,因为我认为原来不是问题
【问题讨论】:
-
我怀疑这是你的问题,但对我来说,每当我遇到错误时,facebook 会以越来越多的时间间隔多次发送消息。想我会提到它。
-
@user2322082 事情在日志中我可以看到我多次收到相同的文本,所以机器人一次又一次地处理它
-
如果您在问题中包含发送单条消息时显示的打印语句,它可能会帮助人们解决您的问题
-
@user2322082 想一想,可能是 20s 回复帧的问题,我减小了字典的大小以加快 word_gen() 的速度,问题似乎走了
-
@user2322082 我已经 20 多岁了,因为生成器平均需要 40 秒来处理,现在我平均需要 12 秒,问题已经消失了
标签: python facebook facebook-messenger facebook-chat facebook-chatbot