我创建了一个完美运行的Facebook messenger机器人。我用php创建它。
现在,我想添加一些新功能。当机器人所有者在Messenger中联机并开始回复消息时,机器人应该停止响应用户。
如何检测所有者何时开始接听?
答案 0 :(得分:1)
一个简单的想法是从管理员帐户向Bot发送消息。例如,如果管理员发送'STOP',则Bot会停止发送消息,直到管理员发送'START'。
Bot的传入事件包含发件人ID。发件人ID必须与特定的管理员ID相关联。我发现为特定用户获取该ID的唯一方法是发送消息并打印出id。该ID特定于Bot和用户组合。例如,我的Bot将使用此JS行向我的个人帐户发送消息:
sendTextMessage(1073962542672604,fistName + " " + lastName + " " + messageText); // send a message to Matthew directly
听起来您有机器人工作但如果您需要更多详细信息,请查看我的Bot和source代码。
为了好玩,我将此功能添加到我的Bot中。要查看node.js实现中的详细信息,请在app.js脚本中搜索“isStopped”变量。
答案 1 :(得分:1)
我之前做过测试。
您可以尝试订阅“message_echo”webhook。当页面和机器人向用户发送消息时,将调用此webhook。因此,您需要区分哪个“message_echo”来自页面(一个人),哪个来自机器人。在webhook发送的json中,来自机器人的消息将在app_id
对象中包含message
键。
您的服务器将通过订阅此webhook获得大量点击。