如何通过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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...