Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Facebook图形API获取用户';s个人资料照片_Objective C_Facebook Graph Api_Ios7_Facebook Graph Api V2.0 - Fatal编程技术网

Objective c Facebook图形API获取用户';s个人资料照片

Objective c Facebook图形API获取用户';s个人资料照片,objective-c,facebook-graph-api,ios7,facebook-graph-api-v2.0,Objective C,Facebook Graph Api,Ios7,Facebook Graph Api V2.0,我正在使用Facebook Graph API v2.0。下面的电话 [FBRequestConnection startWithGraphPath:@"/me/picture" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { if (!error) { NSLog(@"%@", result); } else { NSLog(@"%

我正在使用Facebook Graph API v2.0。下面的电话

[FBRequestConnection startWithGraphPath:@"/me/picture" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    if (!error) {
        NSLog(@"%@", result);
    } else {
        NSLog(@"%@", [error userInfo]);
    }
}];
导致此错误的原因:

{
    NSLocalizedDescription = "Response is a non-text MIME type; endpoints that return images and other binary data should be fetched using NSURLRequest and NSURLConnection";
    "com.facebook.sdk:ErrorSessionKey" = "<FBSession: 0x10f036250, state: FBSessionStateOpen, loginHandler: 0x100073a40, appID: 863523550341327, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x10f0339c0>, expirationDate: 4001-01-01 00:00:00 +0000, refreshDate: 2014-07-27 17:20:14 +0000, attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(\n    installed,\n    \"public_profile\",\n    email,\n    \"user_birthday\",\n    \"user_location\",\n    \"user_friends\"\n)>";
    "com.facebook.sdk:HTTPStatusCode" = 0;
}
{
NSLocalizedDescription=“响应是非文本MIME类型;返回图像和其他二进制数据的端点应使用NSURLRequest和NSURLConnection获取”;
“com.facebook.sdk:ErrorSessionKey”=”;
“com.facebook.sdk:HTTPStatusCode”=0;
}

有人知道为什么会这样吗?我真正需要的是一个包含我个人资料图片url的响应。在2012年和更早的时候,也有人问过类似的问题,但API从那时起就发生了变化。请不要将此标记为重复,除非您确实确定您重定向到我的问题有一个有效的解决方案。我尝试过其他几种方法,比如自己启动连接,使用“/me?fields=picture”等图形路径,但都会导致相同的错误。

借助此URL模板加载配置文件图片

    NSString *imgUrl = [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture", user.id];

似乎我最初的电话要求一张照片。为了获得一个基于文本的响应,并提供一个个人资料照片的url,我采用了以下方法:

 [FBRequestConnection startWithGraphPath:@"me?fields=picture.height(500),picture.width(500)"completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
            if (error) {

            }
}];

对于新的Facebook Graph API,我使用:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                              initWithGraphPath:@"/me?fields=id,name,picture" //As many fields as you need
                              parameters:nil
                              HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    if (!error){
        NSDictionary *picture = [(NSDictionary*)result objectForKey:@"picture"];
        NSDictionary *data = [picture objectForKey:@"data"];
        NSString *url = [data objectForKey:@"url"];
        NSData *dataImage = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];

    }
}];

您可以了解有关用户数据的更多信息

我会这样做,但api可能会发生变化,这似乎没有那么模块化。