Facebook API:(#100)未找到匹配的用户

时间:2017-08-05 15:49:32

标签: facebook facebook-graph-api facebook-chatbot

我花了一整天时间试图弄清楚这个错误,我也注意到同样的问题也有类似的问题,但我完全不确定我是否在那里找到答案,所以如果有人可以指出或对我的问题给出任何提示,我完全理解。

我通过测试FB应用程序名称 MyApp,发出请求从Facebook页面A向用户X(通过userId)发送消息,该用户对FB页面A的帖子发表评论即可。我在Facebook Graph Explorer上尝试这个。

我通过在Facebook页面的帖子中获取评论列表来获取用户ID,但我完全无法发送消息。

这是错误

{
      "error": {
        "message": "(#100) No matching user found",
        "type": "OAuthException",
        "code": 100,
        "error_subcode": 2018001,
        "fbtrace_id": "H3yMO0RWaDy"
      }
}

这是我的曲目

  1. MyApp已经设置好webhook好了,因为它尚未发布用于测试目的(未经批准的应用程序),所以我必须将用户X帐户添加到MyApp的测试池中(我尝试发送的消息)也是这个用户X)

  2. 我登录用户X对FB页面中的帖子发表评论

  3. 在Graph Explorer上,我选择了应用程序: MyApp ,并获得了FB页面A的页面访问令牌,我执行了两个以下请求

    < / LI>

    3.1 /{page_id}_{post_id}?fields=comments 有了这个,我可以在FB页面A中获得现有注释的列表,这是输出:

    {
        "comments": {
            "data": [
                      {
                        "created_time": "...",
                        "from": {
                          "name": "User X",
                          "id": "123456789" // this is the user Id that I would take to send the message to
                        },
                        "message": "Sample comment from User X",
                        "id": "..." // {page_id}_{post_id}
                      }
                    ],
                    "paging": {
                       ....
                    }
                  },
                  "id": "..." // {page_id}_{post_id
        }
    } 
    

    3.2 {page_id}/messages:我正在尝试使用我从3.1步骤获得的用户ID从FB页面A向用户X发送消息

    recipient: {id: "123456789"} // there seems be a problem with this id that I got from step 3.1, FB cannot find the user id with this number
    message: {text: "hello"}
    

    我也承认用户的应用/网页范围ID。

    我已经使用API​​ (/{page_id}/subscribed_apps)

    将MyApp订阅到了FB Page A.
      

    Facebook API v2.10

    我不知道出了什么问题。

1 个答案:

答案 0 :(得分:1)

我明白了。 Facebook Messenger Platform使用分页范围用户ID,但我使用的是app范围ID。他们是不同的。

这是来自Facebook的官方文档,关于如何获取分页范围ID

  

id必须是通过Messenger条目检索的ID   点或通过Messenger webhooks(例如,一个人可能会发现   您在Messenger中的业务并从那里开始对话。

     

这些ID是页面范围的ID(PSID)。这意味着ID是   对于给定的页面是唯一的。

     

如果您有现有的Facebook登录集成,则用户ID为   应用范围,不适用于Messenger平台。

解决方案是将MyApp订阅到FB页面(我已经完成的工作)以使webhook工作,我将从用户的消息中获取页面范围ID。

此外,详细说明如何设置此处的订阅

http://ukimiawz.github.io/facebook/2015/08/12/webhook-facebook-subscriptions/