【问题标题】:Programatically creating Test Users with cURL using the Facebook v2.1 Graph API使用 Facebook v2.1 Graph API 以编程方式使用 cURL 创建测试用户
【发布时间】:2014-12-10 17:54:24
【问题描述】:

我想以编程方式为我的 Facebook 应用创建 Facebook 测试用户。

我一直在查看 HTTP Facebook Graph API v2.1 的 API 文档:

https://developers.facebook.com/docs/graph-api/reference/v2.1/app/accounts/test-users

关于发布的部分让我相信我应该有足够的权限以仅使用我的 app-access-token 以编程方式创建测试用户:

  • 需要应用访问令牌才能为该应用创建新的测试用户。

所以我尝试形成这样的请求:

curl -v --data "name=foo&access_token=xxxxxxxxxxxxxxxxx" https://graph.facebook.com/v2.1/99999999999999/accounts/test-users

我使用的 access_token 是我的“应用令牌”,如本页所示:

https://developers.facebook.com/tools/accesstoken/

它几乎可以工作。确实创建了一个新用户foofoo 甚至出现在 Facebook 应用开发者页面的测试用户部分。但是,该请求始终会产生奇怪的响应:

< HTTP/1.1 500 Internal Server Error
< WWW-Authenticate: OAuth "Facebook Platform" "unknown_error" "An unknown error has occurred."
< Facebook-API-Version: v2.1
< ...
{"error":{"message":"An unknown error has occurred.","type":"OAuthException","code":1}}

我查看了 Stack Overflow 上用户的一些旧帖子,它们有类似的问题,但是,在尝试了这些线程中的建议后,我仍然面临同样的问题,我怀疑这些线程中的建议是特定于旧版本的 Facebook Graph API。

有人可以解释一下出了什么问题吗?这是我应该能够在不自己登录 Facebook 的情况下从 cURL 执行的操作吗?

【问题讨论】:

    标签: facebook facebook-graph-api


    【解决方案1】:

    我刚刚再次尝试使用完全相同的 cURL 请求(第二天)并按预期从 Facebook 获得了 200 个。

    Facebook 端一定有问题。或者他们的 API 非常糟糕!

    【讨论】:

      【解决方案2】:

      您不能在他们的页面上使用生成的令牌来测试这一点。您需要使用之前的 curl 请求自己生成令牌,然后将该令牌传递给您的下一个。

      更多信息请参见Access Tokens

      【讨论】:

      • the generated token on their page 是什么意思?
      • 不能使用facebook生成的app token通过curl创建测试用户,必须自己在curl中生成token。
      【解决方案3】:

      应用访问令牌可以是由 facebook 或 app_id|secret 生成的令牌。但是,从昨晚开始,端点似乎已经坏了,我刚刚提交了一个问题,想知道是否有其他人遇到过同样的问题。

      【讨论】:

      • "app_id" + "|" + "app_secret"?它在文档中的什么地方这么说?
      • 他是对的,这就是你制作应用访问令牌的方式。
      【解决方案4】:

      我没有修复,但我有一些新数据。

      这开始发生在我昨天 2014 年 10 月 14 日,太平洋夏令时间上午 10 点到下午 12 点之间的某个时间。之前运行的代码和 FB 应用程序停止运行,今天仍然损坏。

      令人惊讶的是,当我查看https://developers.facebook.com/apps/FB_APP_ID/roles/test-users/ 时,我可以看到新用户。

      所以调用是“工作”的,因为正在创建新用户,但是因为我们收到 500 code=1 message="An unknown error has occurred."而中断。

      【讨论】:

      • 假设:考虑到时间,这可能与 stackoverflow.com/questions/26379077/… 中的 SSLv3 POODLE 问题有关。
      • 我试过 TLSv1,但无济于事。我现在怀疑这个假设:如果 FB 由于 SSLv3 而切断我的联系,它就不会在后端创建测试用户。
      • 找到了他们讨论这个错误的 FB 线程:developers.facebook.com/bugs/777357412310228 他们确认这个错误是有效的,并且结束了。昨晚某个时候修好了。 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 2014-10-05
      • 1970-01-01
      相关资源
      最近更新 更多