从应用范围中获取真实的Facebook用户id


Get real Facebook userID from an app scoped

我正在使用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是一个"应用范围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与我的应用程序有关,我必须在发送通知请求之前获得真实的userID。

有人知道我怎么能做到这一点吗?

谢谢:)

Facebook明确禁止使用'real'用户ID,并在FB API V2+中移动到应用范围内的用户ID。

同样,您不能向未使用您的应用程序的人发送通知。默认情况下,这是为了禁止垃圾邮件。你可以——正如这个边缘的名字所暗示的——在用户提要的故事中标记这些人。但仅限于使用你的应用的用户。他们会收到通知,有人在帖子中标记了他们。

当然,所有这些都需要额外的权限,这些权限必须经过Facebook的审查(我不确定,如果你熟悉审查过程,但简而言之-他们会手动检查你的应用程序是否符合他们的指导方针,如果违反了他们就会禁止它)。

下面是我找到的一些描述可标记好友API用法的文章,并附有示例:

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