从应用范围内获取真实的 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 是一个 "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。

有人知道我该怎么做吗?

谢谢:)

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

此外,您不能向未使用您的应用程序的人发送通知。这是默认情况下不允许垃圾邮件。你可以——正如这个边缘实现的名字一样——在用户提要的故事中标记这些人。但仅限于使用您的应用程序的用户的提要。他们将收到通知,有人在 post 中标记了他们。但仅此而已。

当然,所有这些都需要额外的权限,必须由 Facebook 审核(我不确定,如果您熟悉审核流程,但简而言之 - 他们会手动检查您的申请遵守他们的准则并禁止它,如果它违反了它们)。

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

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