我已经创建了一个工作完美的Facebook messenger bot。我用php创建的
现在,我想添加一些新功能。当聊天机器人的所有者在线并开始回复消息时,聊天机器人应该停止响应用户。
我如何检测主人何时开始接听电话?
我之前做过一个测试。
你可以尝试订阅"message_echo" webhook。当页面和bot向用户发送消息时调用这个webhook。因此,您需要区分哪些"message_echo"来自页面(人),哪些来自机器人。在webhook发送的json中,来自bot的消息将在message
对象中包含一个app_id
键。
您的服务器将通过订阅这个webhook获得大量点击。
一个简单的想法是从管理员帐户向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添加了这个功能。要查看node.js实现中的细节,请在app.js脚本中搜索'isStopped'变量。