のiOS用Facebook SDKの古いバージョンでは、プロフィール写真を取得するためのme/pictureまたはuserId/pictureをリクエストできます。最新のSDKでこれを試してみると、私はヌル応答を得ています。最新のFacebook iOS SDK
なぜ、APIが変更された場合は何が最善の選択肢ですか。
ありがとうございます!
のiOS用Facebook SDKの古いバージョンでは、プロフィール写真を取得するためのme/pictureまたはuserId/pictureをリクエストできます。最新のSDKでこれを試してみると、私はヌル応答を得ています。最新のFacebook iOS SDK
なぜ、APIが変更された場合は何が最善の選択肢ですか。
ありがとうございます!
私は同じ問題を抱えていましたが、私は変更された何かを推測しました。彼らは開発者に画像を "普通の"方法でダウンロードさせたいと思っています。彼らは要求オブジェクトを介して定期的な絵のような画像をダウンロードしていない新しいSDKに付属しているhackbookのFacebookのサンプルコードで
:
NSString * url = [NSStringstringWithFormat:@"https://graph.facebook.com/%@/picture",facebookObjectIdString];
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
UIImage *downloadedImage = [UIImage imageWithData:data];
あなたが見ることができるように、ただ、どのようなURLから画像をダウンロードします画像。 また、NSURLRequestとsendSynchronousRequestなどでダウンロードすることもできます。
これは新しいSDKまたは決定のバグかどうかを知ることに興味があります。
update: 場合によっては、画像が(ページの写真のように)画像のダウンロードアクセスを制限する一部のFacebookブックオブジェクトに属している場合、access_tokenパラメータを追加することがあります。
実は、あなたはまだ[facebook requestWithGraphPath:@"me/picture?type=large" andDelegate:self];
を使用することができます。しかし-(void)request:(FBRequest *)request didLoad:(id)result
で、代わりにresult
の値を使用しての、request.responseText
の画像データを取得し、NSMutableDataあるし、そこから自分のイメージを構築します。
例:
-(void)request:(FBRequest *)request didLoad:(id)result {
NSLog(@"Got user avatar");
UIImage *profileAvatar = [UIImage imageWithData:request.responseText];
UIImageView *avatarImageView = [[UIImageView alloc] initWithImage:profileAvatar];
[self.view addSubview:avatarImageView];
}