从应用范围

时间:2015-07-28 09:12:05

标签: php facebook-graph-api facebook-php-sdk

我正在使用PHP Facebook SDK从经过身份验证的用户那里获取朋友:

GET /v2.2/<userID>/taggable_friends

我得到一个包含这样的元素的数组:

object(stdClass)[4691]
  public 'id' => string 'AaJXJQ2G...VAnlcRjdLTsA' (length=110)
  public 'name' => string '...' (length=13)
  public 'picture' => 
    object(stdClass)[4690]
      public 'data' => 
        object(stdClass)[4689]
          public 'is_silhouette' => boolean false
          public 'url' => string 'https://scontent.xx.fbcdn.net/hprofile-xta1/....jpg?' (length=162)

现在我想向一些朋友发送通知,但上面的ID是“app scoped id”,所以如果我通过此调用调用通知API:

POST /v2.2/<friend_app_scoped_ID>/notifications?access_token=<my_app_access_token>&href=<some_link>&template=<text>

我收到此错误:

(#803) Some of the aliases you requested do not exist: <friend_app_scoped_ID>

我认为应用范围的ID与我的应用相关,我必须在发送通知请求之前获得真实的用户ID。

任何人都知道我该怎么做?

谢谢:)

1 个答案:

答案 0 :(得分:2)

Facebook明确禁止使用'真实'用户ID,并在FB API V2 +中移至应用范围的用户ID。

此外,您无法向未使用您的应用程序的人发送通知。默认情况下,这会禁止垃圾邮件。你可以 - 作为这个边缘实现的名称 - 在用户提要的故事中标记这些人。但仅限于使用您的应用的用户的Feed。他们会收到通知,有人在帖子中标记了他们。但就是这样。

当然,所有这些都需要额外的权限,必须由Facebook审核(我不确定,如果您熟悉审核流程,但简而言之 - 他们会手动检查您的申请是否合规如果它违反了它们的指导方针并且不允许它。)

以下是我发现的一些描述可标记朋友API用法的文章,其中包含示例:

https://www.webniraj.com/2014/06/12/facebook-api-getting-friends-using-graph-api-2-0-and-php-sdk-4-0-x/