iOS Facebook 获取好友列表

Posted

技术标签:

【中文标题】iOS Facebook 获取好友列表【英文标题】:iOS Facebook get friends list 【发布时间】:2015-02-09 18:03:57 【问题描述】:
- (void)viewDidLoad

    [super viewDidLoad];
    m_allFriends = [[NSMutableArray alloc] init];


    if ([[FBSession activeSession] isOpen])
    
        if ([[[FBSession activeSession] permissions]indexOfObject:@"user_friends"] == NSNotFound)
        

            [[FBSession activeSession] requestNewPublishPermissions:[NSArray arrayWithObject:@"user_friends"] defaultAudience:FBSessionDefaultAudienceFriends
                                                  completionHandler:^(FBSession *session,NSError *error)
                                                      [self getFBFriendListFunc];
                                                      NSLog(@"1");
                                                  ];

        
        else
        
            [self getFBFriendListFunc];
            NSLog(@"2");
        
    
    else
    

        [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"user_friends"]
                                           defaultAudience:FBSessionDefaultAudienceOnlyMe
                                              allowLoginUI:YES
                                         completionHandler:^(FBSession *session, FBSessionState status, NSError *error) 
                                             if (!error && status == FBSessionStateOpen) 
                                                 [self getFBFriendListFunc];
                                                 NSLog(@"3");
                                             else
                                                 NSLog(@"error");
                                             
                                         ];
    




-(void)getFBFriendListFunc

    [FBRequestConnection startWithGraphpath:@"me/friends"
                                 parameters:nil
                                 HTTPMethod:@"GET"
                          completionHandler:^(
                                              FBRequestConnection *connection,
                                              id result,
                                              NSError *error
                                              ) 
                              NSLog(@"me/friends result=%@",result);

                              NSLog(@"me/friends error = %@", error.description);

                              NSArray *friendList = [result objectForKey:@"data"];

                              [m_allFriends addObjectsFromArray: friendList];
                          ];


我尝试将 Facebook 与他们的 API 连接起来,实际上这段代码连接了 Facebook,Facebook 询问我这个应用程序想要使用你的信息,而不是我确认的信息。最后一步,Facebook 再次返回我的应用程序,而不是这个 getFBFriendListFunc 应该运行但 if/else 都不起作用。什么都没有显示...

我在 Facebook 开发人员上获得此代码,哪个代码部分错误? 任何的想法 ? 谢谢...

【问题讨论】:

【参考方案1】:

为了邀请用户,您可以在添加 facebook-sdk 后使用以下代码

[FBWebDialogs
  presentRequestsDialogModallyWithSession:sharedFacebookHelper.session
  message:@"Your invite message"
  title:nil
  parameters:nil
  handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) 
                                          if (error) 
                                              // An error occurred, we need to handle the error
                                              // See: https://developers.facebook.com/docs/ios/errors
                                              NSLog(@"Error publishing story: %@", error.description);
                                           else 
                                              if (result == FBWebDialogResultDialogNotCompleted) 
                                                  // User canceled.
                                                  NSLog(@"User cancelled.");
                                               else 
                                                  // Handle the publish feed callback




                                                   

                                        


];

【讨论】:

【参考方案2】:

我在AppDelegate.m 上添加此功能,如果此功能不退出登录会话,我希望此代码对任何人有帮助:)

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

    BOOL wasHandled = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
    return wasHandled;


【讨论】:

以上是关于iOS Facebook 获取好友列表的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Facebook iOS sdk 获取好友列表

iOS Facebook 获取好友列表

如何使用 iOS Facebook SDK 获取所有 Facebook 好友列表

如何使用 FBSDK for iOS 获取 Facebook 好友列表?

Facebook iOS SDK v4.0,获取好友列表

Facebook SDK 错误 Domain=com.facebook.sdk Code=5 在 ios 中获取好友列表时