我正在使用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/