ios - 获取 Facebook 好友返回空

标签 ios facebook facebook-graph-api

我正在尝试为我的应用获取好友列表,但这是控制台返回的内容:

    {
    data =     (
    );
    summary =     {
        "total_count" = 1221;
    };

总数是正确的,但没有显示我的任何 friend ?

我在 facebook 开发者门户上创建了两个测试用户,他们都使用我的应用程序登录,并且他们是我在 facebook 上的 friend ,他们的数据不应该显示吗?

这是我请求权限的代码,每次用户登录时都会调用这个类。

@implementation UploadUser

NSString *userName;
NSString *userId;
NSString *userGender;
//UIImage *userPicture;
NSString *userPicture;

NSMutableURLRequest *urlRequest;

//NSData *imageData;
//NSData *pictureData;
//NSData *tempData;

//Retrieves users name, gender and id
-(void)getUserInfo {

    FBSDKGraphRequest *requestUser = [[FBSDKGraphRequest alloc]initWithGraphPath:@"me" parameters:nil];

    FBSDKGraphRequestConnection *connection = [[FBSDKGraphRequestConnection alloc] init];

    [connection addRequest:requestUser completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
        userName = result[@"name"];
        userGender = result[@"gender"];
        userId = result[@"id"];

        if (connection) {

            if (!error) {

                [self setUserData];
                [self uploadUser];

            }
        }else if (!connection) {
            NSLog(@"Get User %@",error);
        }
    }];
    [connection start];


    //Get Friends
    FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                                  initWithGraphPath:@"/me/friends"
                                  parameters:nil
                                  HTTPMethod:@"GET"];
    [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                          id result,
                                          NSError *error) {
        if (connection) {
            NSLog(@"Friends = %@",result);


        }else if (!connection) {
              NSLog(@"Get Friends Error");
        }
    }];



}


//Saves user data to class
-(void)setUserData {
    DataManager *dm = [DataManager sharedInstance];
    [dm setObject:userName forKey:@"userName"];
    [dm setObject:userGender forKey:@"userGender"];
    [dm setObject:userId forKey:@"userId"];



    NSLog(@"%@",userId);
    NSLog(@"%@",userName);
    NSLog(@"%@",userGender);
}

//Uploads user data online
-(void)uploadUser {
    PFUser *user = [PFUser currentUser];
    user[@"name"] = userName;
    user[@"id"] = userId;
    user[@"gender"] = userGender;
    [user saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (succeeded) {
            NSLog(@"User Data Uploaded :)");
        } else {
            //Handle Error
            NSLog(@"User Upload Error... %@",error);
        }
    }];
}

为什么我的查询没有返回我的 friend ?是因为我的 friend 没有被授权使用我的应用程序吗?是否未正确询问我的权限?

最佳答案

您还可以使用 Graph API Explorer 来快速检查您的请求是否有效: https://developers.facebook.com/tools/explorer/

如果你想检查你的 friend ,你应该让你的 friend 也使用这个链接并获得 token 。通过这种方式,facebook 系统了解您的好友登录 Graph API 应用程序,您将获得好友列表。

关于ios - 获取 Facebook 好友返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31110717/

相关文章:

iphone - 在 Interface Builder 中创建的 UITableViewCell segue 不会触发

iOS 应用内购买在开发中有效,但在生产中无效

ios - 使用 Facebook SDK 归档项目时 Xcode clang 段错误

facebook - 发表回复收件箱消息?

ios - NSRange :rangeOfString throws an exception in AFHTTPRequestOperation's success block

ios - Objective-C 对象文字的隐式 bool 转换总是计算为真 ios

javascript - 在 Messenger 中发送 url 时显示带有链接的标题

facebook - 为什么此 Facebook 应用程序不需要应用程序密码即可运行?

ios - Rejected App : 17. 2:要求用户分享个人信息的应用

ruby-on-rails - CSRF 在刷新网页上检测到错误消息