Facebook API {"error":{"message":"(#100) 未找到匹配的用户","type":"OAuthException" 复选框插件

Facebook API {"error":{"message":"(#100) No matching user found","type":"OAuthException" Checkbox Plugin

我正在尝试使用复选框插件的功能。我设法使复选框呈现。几天前,我成功地向用户发送了一些基本文本'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. Select 页面再次生成新的 PAGE_ACCESS_TOKEN.
  3. 订阅消息,messaging_postbacks,messaging_optins 网页挂钩。
  4. 在 .env 中设置新令牌
  5. 通过复选框插件保存新的user_ref。
  6. 使用新的 user_ref 试试 cURL,运气不好。

我可以使用收件人 senderID 发送,但不能使用复选框插件 user_ref。

非常感谢任何帮助:)

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

步骤:

在访问令牌部分:

  1. Facebook 应用程序,我 select 我用于项目的应用程序。
  2. 用户或页面,我将其更改为我的页面以获取页面访问令牌。它将自动生成页面访问令牌。
  3. 我select我需要的权限。对于我的项目,manage_pages 和 pages_messaging 是至关重要的。

注意:如果点击Get Access Token,会生成一个新的,实际上是不一样的。

获得 select 权限后,为了测试生成的访问令牌,我执行以下步骤:

在图表上 API 浏览器:

  1. 将方法从 GET 更改为 POST。这将使您可以在 Params 和 JSON.
  2. 中编写
  3. 来自 this 文档中 6 号的 cURL 示例。仅复制 JSON 部分并放入 JSON 字段。
  4. <UNIQUE_REF_PARAM> 更改为我保存在数据库中的那个:

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

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

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

  1. 提交 POST.

成功后,发送 API 将以 message_id:

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

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