我正在尝试从facebook上获取正在使用我的应用程序的朋友,但在响应中,我得到了空列表。请告诉我我做错了什么。我正在使用以下代码
[[FBRequest requestForMe] startWithCompletionHandler: ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (error) {
//error
NSLog(@"%@",error);
}else{
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,NSDictionary* result,NSError *error) {
NSArray* friends = [result objectForKey:@"data"];
NSLog(@"%@",result);
for (NSDictionary<FBGraphUser>* friend in friends)
{
NSLog(@"%@ %d",friend.username,[friend.id intValue]);
}
}];
}
}];
感谢
可能的原因:
1) 您没有获得此帐户连接的权限(错误的apikey/passkey或权限设置不正确)
2) 检查"结果"变量中存储的内容和答案状态:它可能会以某种方式指导您。
3) 最后,试着获取一些更简单的信息(比如你自己的用户名),以确保你可以访问这些信息。
在新版Facebook's API
中,您将只得到安装了该应用程序的朋友(即is_app_user
为1)。你再也找不到没有使用你的应用程序登录的朋友了。相反,您可以获得taggable_friends
。这将返回你所有朋友的列表,但这里的"id"字段将不同,而不是真正的facebook id。它只用于标记,即传递到字段"标签",如:
NSDictionary *params = @{@"message":self.invitationText.text,
@"tags":ids,
@"caption":@"...",
@"name":@"...",
@"place":@"123456789",
@"link":APP_STORE_URL};
[FBRequestConnection startWithGraphPath:@"/me/feed"
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
//...
}];