我花了一整天时间试图弄清楚这个错误,我也注意到同样的问题也有类似的问题,但我完全不确定我是否在那里找到答案,所以如果有人可以指出或对我的问题给出任何提示,我完全理解。
我通过测试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"
}
}
这是我的曲目
MyApp已经设置好webhook好了,因为它尚未发布用于测试目的(未经批准的应用程序),所以我必须将用户X帐户添加到MyApp的测试池中(我尝试发送的消息)也是这个用户X)
我登录用户X对FB页面中的帖子发表评论
在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)
Facebook API v2.10
我不知道出了什么问题。
答案 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/