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 获取好友列表的主要内容,如果未能解决你的问题,请参考以下文章