如何通过Flask和pymessenger向FB Messenger发送打字气泡?

问题描述

我正在构建一个通过FB Messenger部署的聊天机器人。根据FB文档,您必须将this个发布请求发送到Messenger平台。我使用json.dumps发送有效负载的字符串表示形式。但是,我从来没有看到键入气泡,而只是从机器人那里得到了实际的响应消息。这是Flask应用程序中的相关代码

foverlaps

解决方法

您可以使用Pymessenger包装器。只需导入它,创建一个实例,然后传递您的FB_TOKEN并包装您的动作即可。请记住,在发送操作时,Facebook doc声明您仅必须传递receive_id和action并调用与响应分开的方法。 在您的方法中将操作设置为“ typing_on”。

注意:您的方法不正确,因为您混用了sender_id和receiver_id

from pymessenger import Bot
bot = Bot(<FB_ACCESS_TOKEN>)
def send_typing_bubble(sender_id,recipient_id,action,response_sent_text):
    bot.send_action(sender_id,action)
    bot.send_text_message(sender_id,response_sent_text)

创建方法后,您只需在Webhook的receive_message()方法内调用send_typing_bubble()

if messaging_event.get('message'):

   #your code here

   send_typing_bubble(sender_id,response_sent_text)