IOS中的Facebook好友列表总是空的

时间:2014-10-03 11:33:22

标签: ios iphone facebook facebook-sdk-3.14.x

我正在尝试从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]);
                        }
                    }];
                }
            }];

由于

2 个答案:

答案 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) {
                            //...
                      }];