fb messenger bot 回调总是收到类似的消息

fb messenger bot callback always receiving like message

我正在尝试构建一个聊天机器人。我验证了一个令牌并将页面链接到机器人应用程序。现在的问题是,每当我向页面发送消息时,服务器都会收到 JSON 响应,其中包含 "LIKE" 消息但没有消息文本。

{'object': 'page',
  'entry': 
     [{'time': 1490417055475,
       'messaging': 
         [{'message': {'mid': 'mid.$cAALh2oap5fFhMxj3m1bAdOuaPgvd', 'sticker_id': 369239263222822, 
           'attachments': 
                  [{'payload': {'sticker_id': 369239263222822, 'url': 'https://scontent.xx.fbcdn.net/v/t39.1997-6/851557_369239266556155_759568595_n.png?_nc_ad=z-m&oh=65f8806bcfe45834eb50b60f51cb352d&oe=596142DC'}, 'type': 'image'}], 'seq': 57831},
          'sender': {'id': '1311257182278227'}, 'recipient': {'id': '768737829931919'}, 'timestamp': 1490384301979}], 'id': '768737829931919'}]}

有没有人以前经历过这种情况?由于 Messenger API.

的这种行为,我完全被卡住了

我在这里要冒险,因为问题中没有太多信息。

该消息不是 "LIKE" 消息。它是由某人 (OP) 在聊天输入区域中单击、点击或 click-hold/tap-hold 竖起大拇指按钮创建的图像消息。

可能发生的情况是,您最初向聊天机器人发送了一个赞,而您的应用使用 200 HTTP 响应以外的其他内容进行了回答。发生这种情况时,Facebook 会等待并在大约一分钟内发送响应(在本例中为竖起大拇指)。如果有另一个非200响应,它将重复。

如果我是对的,一个解决方案就是吞下错误(如果您的编程语言有异常,只需挽救并继续)并以 200 响应。
这应该会让 Facebook 认为您可以开始了,他们会在得到积极回应后发送所有备份的消息。然后删除吞咽错误,您应该会收到从 Facebook 发送的消息,除非您再次出错。