Facebook messenger api - 通过对话

时间:2018-02-19 09:06:22

标签: facebook facebook-graph-api facebook-messenger facebook-messenger-bot

我已将主要应用程序的对话传递给辅助应用程序,我使用以下数据调用https://graph.facebook.com/v2.6/me/pass_thread_control

{"recipient": {"id": "xxxxxxxx"},
"target_app_id": xxxxxx,
"metadata": "test to pass to secondary receiver app",
"pass_thread_control": {
    "new_owner_app_id": "xxxxx",
    "metadata": "metadata to test"
  }
 }

它返回true,即辅助应用程序具有控制权。

我遇到的问题是将对话返回主应用程序,我正在使用https://graph.facebook.com/v2.6/me/take_thread_control

{
"recipient": {
"id": "xxxxxxxx"
},
"metadata": "additional content that the caller wants to set"
}

并返回:

    "error": {
        "message": "(# 10) Only Main Receiver can call this API",
        "type": "OAuthException",
        "code": 10,
        "error_subcode": 2018169,
        "fbtrace_id": "DnBvWqt / 0bd"
}

我做错了什么?

我必须连续拨打什么电话?

我如何知道哪个应用程序有对话?

我看到的另一件事是我尝试过这个电话: https://graph.facebook.com/v2.6/me/secondary_receivers

并返回此消息:

"error": {
      "message": "(# 10) Only Main Receiver can call this API",
      "type": "OAuthException",
      "code": 10,
      "error_subcode": 2018169,
      "fbtrace_id": "Gt1WsVx9W22"
   }

我需要一些许可吗?

1 个答案:

答案 0 :(得分:0)

take_thread_control和secondary_receivers只能由主接收器应用程序调用。如果您希望辅助接收器将线程控制传递回主节点,则需要从辅助节点调用pass_thread_control。

take_thread_control专门为Primary保留,pass_thread_control用于主要和辅助。