5

iPhone アプリのユーザーが Facebook のプロフィール写真を表示して選択し、写真をダウンロードしてプロフィール写真として使用できるようにしたいと考えています。現在、Facebook SSO SDK を使用しており、正常にログインして Graph 情報にアクセスしています。を使用して写真情報にアクセスしようとしました (SSO ログインの成功後)。

[facebook requestWithGraphPath:@"me/albums"];

しかし、代わりに空のデータ オブジェクトを取得するだけです。Facebook API Explorerを使用してみましたが、これは非常に便利で、/picture と /photos と /albums のデータが得られます。何らかの理由で、requestWithGraphPath を使用して me/albums、me/picture、または me/photos と同じデータを取得できません。単純な「私」は問題なく動作しますが、画像情報は提供しません。誰が私が間違っているのか教えてもらえますか?

注: これは API リファレンスです: Facebook Graph API

ピクチャープロファイルを次のように機能させました:

[facebook requestWithGraphPath:@"me?fields=picture"];

更新: フォト アルバムであるすべてのプロフィール写真が本当に欲しいので、iOS からアルバムにアクセスする方法を知る必要があります。今無事取得できたプロフィール写真。

API に従って、フォト アルバムに "user_photos" と "friends_photos" のアクセス許可を追加しました。

    NSArray *permissions = [[NSArray alloc] initWithObjects:
                            @"user_likes",
                            @"user_birthday",
                            @"email",
                            @"publish_stream",
                            @"publish_actions",
                            @"user_photos",
                            @"friends_photos",
                            nil];
    [facebook authorize:permissions];

空のデータを取得していると言うと、返される JSON の結果 (request:didLoad: 内) は次のとおりです。

 {
    data =     (
    );
}

私のログファイル出力から:

- (void) request:(FBRequest *)request didLoad:(id)result{
    NSLog(@"%@",result);

}

最後のメモ: 最終的に機能したのは、別のデバイスを使用することでした。これにより、アクセス許可が更新され、すべてが機能し始めました! 私の推測では、エミュレーターと iPhone が Facebook のアクセス許可を更新していなかったため、写真へのアクセスが拒否され、空のデータ配列が取得されていたのです。

この SO の質問も大きな助けになりました: How to get photos of a facebook album in iPhone SDK?

4

2 に答える 2

8

将来の視聴者のために、他の人から完全な回答を受け取っていないため、私は自分の質問に回答します.

まず、 または のいずれかの適切な権限が必要"user_photos"です"friends_photos"。次に、テスト デバイスがアクセス許可を更新していることを確認する必要があります。最終的には、デバイスを再起動したことが原因だと思います。

これが完了したら、SSO 経由でログインした後、次の呼び出しを使用して、アルバムの JSON リストを取得できます。

[facebook requestWithGraphPath:@"me/albums" andDelegate:self];

dataこれにより、ID を含む各アルバムに関するあらゆる種類の情報を含むJSON 配列 ( key の下) が得られます。特定のアルバム ID (「123456789」など) の写真のリストを取得するには、次の手順を実行します。

NSString * albumId = @"123456789";
NSString * path = [NSString stringWithFormat:@"%@/photos", albumId];
[facebook requestWithGraphPath:path andDelegate:self];

もちろん、JSON データを処理できるFBRequestDelegateメソッドを介して応答が返されます。request:didLoad

于 2012-08-02T14:25:08.663 に答える
1

FBGraph Api ドキュメント フォルダをダウンロードして、フォルダに追加します。Facebook 開発者サイトhttp://developers.facebook.com/docs/reference/api/の説明を読んでください。

これはサンプルコードです -サンプルコード

これで、ユーザー プロフィールの写真が に表示されUIAlertViewます。好きなところに見せることができます。

于 2012-07-27T15:38:44.530 に答える