首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FBSDKLoginkit获取用户名和配置文件图片

使用FBSDKLoginkit获取用户名和配置文件图片
EN

Stack Overflow用户
提问于 2015-10-30 12:56:40
回答 3查看 1.4K关注 0票数 3

我想得到用户名和配置文件图片usig FBSDKLoginKit。怎么弄到?我的密码在这里。

荚'FBSDKLoginKit','~> 4.7‘

代码语言:javascript
复制
   - (IBAction)fbLoginActionClicked:(id)sender
    {
        FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];

        [login
         logInWithReadPermissions: @[@"public_profile"]
         fromViewController:self
         handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
             if (error) {
                 NSLog(@"Process error");
             }
             else if (result.isCancelled)
             {
                 NSLog(@"Cancelled");
             }
             else
             {
                 NSLog(@"Logged in");
             }
         }];
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-30 13:02:54

像下面的代码一样使用FBSDKGraphRequest获取Facebook用户的用户名和配置文件图片。

登录后,添加以下代码:

代码语言:javascript
复制
NSLog(@"Logged in");
             if ([result.grantedPermissions containsObject:@"public_profile"]) {
                 if ([FBSDKAccessToken currentAccessToken]) {
                     NSMutableDictionary* parameters = [NSMutableDictionary dictionary];
                     [parameters setValue:@"name,picture.type(large)" forKey:@"fields"];

                     [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:parameters]
                      startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
                          if (!error)
                          {
                              NSLog(@"fetched user:%@", result);


                              NSString *name = [[result valueForKey:@"name"] lowercaseString];
                              NSString *username = [name stringByReplacingOccurrencesOfString:@" " withString:@""];
                              NSArray *picture_arr = [result objectForKey:@"picture"];
                              NSArray *data_arr = [picture_arr valueForKey:@"data"];
                              NSString *profile_pic = [data_arr valueForKey:@"url"];

}

 }]; 
票数 1
EN

Stack Overflow用户

发布于 2015-10-30 13:14:11

代码语言:javascript
复制
    if ([FBSDKAccessToken currentAccessToken]) {
    [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{ @"fields" : @"id,name,picture.width(100).height(100)"}]startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
        if (!error) {
            NSString *nameOfLoginUser = [result valueForKey:@"name"];
            NSString *imageStringOfLoginUser = [[[result valueForKey:@"picture"] valueForKey:@"data"] valueForKey:@"url"];
            NSURL *url = [[NSURL alloc] initWithURL: imageStringOfLoginUser];
            [self.imageView setImageWithURL:url placeholderImage: nil];
        }
    }];
}
票数 2
EN

Stack Overflow用户

发布于 2015-10-30 13:05:52

代码语言:javascript
复制
- (IBAction)fbLoginActionClicked:(id)sender
{
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];

    [login
     logInWithReadPermissions: @[@"public_profile"]
     fromViewController:self
     handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
         if (error) {
             NSLog(@"Process error");
         }
         else if (result.isCancelled)
         {
             NSLog(@"Cancelled");
         }
         else
         {

             NSLog(@"Logged in %@ %@", result.token.userID, result.token.tokenString);
             [self fetchUserInfo];
         }
     }];
}

-(void)fetchUserInfo
{
    if ([FBSDKAccessToken currentAccessToken])
    {
        NSLog(@"Token is available : %@",[[FBSDKAccessToken currentAccessToken]tokenString]);

        [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location ,friends ,hometown , friendlists"}]
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
             if (!error)
             {
                 NSLog(@"resultis:%@",result);
             }
             else
             {
                 NSLog(@"Error %@",error);
             }
         }];

    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33436560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档