Objective c Facebook图形API获取用户';s个人资料照片
我正在使用Facebook Graph API v2.0。下面的电话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(@"%
[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可能会发生变化,这似乎没有那么模块化。