Facebook API {“错误”:{“消息”:“(#100)未找到匹配的用户”,“类型”:“ OAuthException”复选框插件

时间:2018-09-28 04:58:37

标签: facebook api checkbox plugins messenger

我正在尝试使用复选框插件的功能。我设法使复选框呈现。几天前,我设法向用户发送了一些基本文本“ Hello World”。但是现在我无法发送任何东西。每当我尝试发送给用户时,都会出现此错误:

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

我什至尝试使用cURL,但没有成功,仍然是相同的错误。

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient": {
      "user_ref":"<UNIQUE_REF_PARAM>"
  }, 
  "message": {
      "text":"hello, world!"
  }
}' "https://graph.facebook.com/v2.6/me/messages?access_token=<PAGE_ACCESS_TOKEN>" 

我所做的是:

  1. 从页面上卸载的应用程序。
  2. 再次选择页面并生成新的PAGE_ACCESS_TOKEN。
  3. 订阅该页面的消息,messaging_postbacks,messaging_optins Webhooks。
  4. 在.env中设置新令牌。
  5. 通过复选框插件保存新的user_ref。
  6. 使用新的user_ref尝试cURL,不走运。

我能够使用收件人senderID发送邮件,但不能使用user_ref作为复选框插件。

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。事实证明,我对所有访问令牌感到困惑,因为它们几乎都是相同的,但实际上不是。为了获得正确的访问令牌,我使用Graph API Explorer

步骤:

在“访问令牌”部分:

  1. Facebook应用,我选择要用于项目的应用。
  2. 用户或页面,我将其更改为我的页面以获得页面访问令牌。它将自动生成页面访问令牌。
  3. 我选择所需的权限。对于我的项目,manage_pages和pages_messaging非常重要。

注意:如果您单击“获取访问令牌”,它将生成一个新的令牌,实际上并不相同。

选择权限后,要测试生成的访问令牌,请执行以下步骤:

在Graph API Explorer中:

  1. 将方法从GET更改为POST。这将使您可以使用Params和JSON进行编写。
  2. 摘自this文档中有关数字6的cURL示例。仅复制JSON部分并放入JSON字段。
  3. <UNIQUE_REF_PARAM>更改为我已保存在db中的目录,如下所示:

    {
        "recipient": {
            "user_ref": "xplynagfqasoiuqnwyepnyiqe"
        },
        "message": {
            "text": "hello, world!"
        }
    }
    
  4. 因为cURL示例发送到

    https://graph.facebook.com/v2.6/me/messages?access_token=<PAGE_ACCESS_TOKEN>

所以我将提交更改为POST->/v3.1->/me/messages

  1. 提交POST。

成功后,Send API将以message_id进行响应:

{
    "message_id": "mid.1456970487936:c34767dfe57ee6e339"
}

这意味着您可以将右侧生成的访问令牌用作PAGE_ACCESS_TOKEN。