0

我正在尝试获取SLRequest在 ios 中使用的 facebook 帐户详细信息。

我得到了所有详细信息,但无法获取用户的个人资料照片链接。

我的代码如下:

NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys:
                         @"xxxxxxxxxxxxxx", ACFacebookAppIdKey,
                         [NSArray arrayWithObjects:@"email", nil] , ACFacebookPermissionsKey,
                         nil];

[_accountStore requestAccessToAccountsWithType:facebookTypeAccount
                                       options:options
                                    completion:^(BOOL granted, NSError *error) {
                                        if(granted){
                                            NSArray *accounts = [_accountStore accountsWithAccountType:facebookTypeAccount];
                                            _facebookAccount = [accounts lastObject];
                                            NSLog(@"Success");

                                            [self me];
                                        }else{
                                            // ouch
                                            NSLog(@"Fail");
                                            NSLog(@"Error: %@", error);
                                        }
                                    }];


- (void)me{
NSURL *meurl = [NSURL URLWithString:@"https://graph.facebook.com/me"];


    SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
                                              requestMethod:SLRequestMethodGET
                                                        URL:meurl
                                                 parameters:nil];

    merequest.account = _facebookAccount;

    [merequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
        NSString *meDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

        NSLog(@"%@", meDataString);

        NSJSONSerialization *js=[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:nil];
        NSLog(@"%@",js);

    }];

}

帮我解决这个问题。

4

1 回答 1

2

您可以从返回的响应中获取用户的 ID,然后使用以下内容获取个人资料图片:

http://graph.facebook.com/User_ID/picture

我将SDWebImage用于图像:

NSString *urlstr = @"http://graph.facebook.com/100001393655684/picture";

[imageView setImageWithURL:[NSURL URLWithString:urlstr]
                   placeholderImage:nil];

对于 Twitter,请确保您验证了您的请求,查看此链接了解更多详细信息

注意:如果您不为 iOS5 部署,您可能需要将 TWRequest 更新为 SLRequest

于 2013-12-05T12:41:32.210 回答