【问题标题】:Facebook Messenger Bot - disable bot automatically when owner start answering questionsFacebook Messenger Bot - 当所有者开始回答问题时自动禁用机器人
【发布时间】:2017-01-06 14:31:41
【问题描述】:

我创建了一个运行良好的 Facebook Messenger 机器人。我用php创建的。

现在,我想添加一些新功能。当机器人所有者在 Messenger 中在线并开始回复消息时,机器人应该停止回复用户。

如何检测所有者何时开始回答?

【问题讨论】:

    标签: php facebook bots facebook-messenger


    【解决方案1】:

    我之前对此进行了测试。

    您可以尝试订阅“message_echo”网络挂钩。当页面和机器人向用户发送消息时,将调用此 webhook。所以你需要区分哪个“message_echo”来自页面(一个人),哪个来自机器人。在 webhook 发送的 json 中,来自机器人的消息将在 message 对象中包含一个 app_id 键。

    订阅此 webhook,您的服务器将获得大量点击。

    【讨论】:

    • 非常感谢您的回答。它有很大帮助:D
    【解决方案2】:

    一个简单的想法是从管理员帐户向 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
    

    听起来您的机器人正在工作,但如果您需要更多详细信息,请查看我的 Botsource 代码。

    只是为了好玩,我将此功能添加到我的 Bot。要查看 node.js 实现的详细信息,请在 app.js 脚本中搜索“isStopped”变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      相关资源
      最近更新 更多