0

古いバージョンの Facebook SDK for iOS では、me/picture または userId/picture を要求してプロフィール写真を取得できました。最新の SDK でこれを試すと、null 応答が返されます。

APIが変更された場合、その理由と、最良の代替手段は何ですか?

ありがとう!

4

2 に答える 2

1

私は同じ問題を抱えていました。何かが変わったと思います。おそらく、開発者に「通常の」方法で画像をダウンロードしてもらいたいのでしょう。

新しい SDK に付属しているハックブックの 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 のバグなのか、決定なのかを知るのは興味深いことです。

更新: 場合によっては、画像のダウンロードのアクセスを制限する Facebook オブジェクトに画像が属している場合 (ページの画像など)、access_token パラメーターを追加する必要があります。

于 2012-05-01T10:13:42.960 に答える
1

実はまだ使えます[facebook requestWithGraphPath:@"me/picture?type=large" andDelegate:self];

しかし-(void)request:(FBRequest *)request didLoad:(id)result、 では、 の値を使用する代わりに、NSMutableData であるresultの画像データを取得し、そこから画像を構築します。request.responseText

例:

-(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];
}

クレジット: https://stackoverflow.com/a/10528707/982913

于 2012-07-06T19:58:09.970 に答える