我正在尝试从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]);
}
}];
}
}];
由于
答案 0 :(得分:0)
可能的原因:
1)您无权获得此帐户的连接(错误的apikey /密码或权限未正确设置)
2)检查“结果”变量和答案状态中存储的内容:它可能会以某种方式引导您。
3)最后,尝试获取一些更简单的信息(比如您自己的用户名),以确保您可以访问这些信息。
答案 1 :(得分:0)
在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) {
//...
}];