2012-07-27 31 views
5

私のiPhoneアプリユーザーは、自分のFacebookのプロフィール写真を表示して選択し、プロフィール写真として使用する写真をダウンロードできます。私は現在FacebookのSSO SDKを使用しており、ログインに成功してグラフ情報にアクセスしています。iOS facebook sdkアルバムをダウンロードする方法、プロフィールの写真データ

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

を使用して写真情報にアクセスしようとしましたが、空のデータオブジェクトが返されます。私はFacebook API explorerを使ってみましたが、これは非常に役に立ち、/ picture、/ photos、/ albumsのデータを与えてくれます。何らかの理由で私はme/albums、me/picture、me/photosと共にrequestWithGraphPathを使って同じデータを取得しません。ちょうど平野の "私"はうまく動作しますが、私に画像情報は与えません。誰かが私が間違っていることを教えてもらえますか?

注:Facebook Graph API

私はこのように動作するようにピクチャープロファイルを手に入れた:

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

アップデート:本当に私はフォトアルバムであるプロフィール写真のすべてをしたい、これはAPIのリファレンスです私は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の結果である:didLoad: )返されるもの:

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

} 

最後の注意:私のログファイルの出力から

{ 
    data =  (
    ); 
} 

何最終的には別のデバイスを使用して権限を更新し、その後すべてが動作するようになりました。私の最高の推測は、エミュレータと私のiPhoneは私のFacebookのアクセス許可を更新していないので、私は写真へのアクセスが拒否され、空のデータ配列を取得していたということです。

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

答えて

8

今後の視聴者のために、私は他の誰かから完全な答えを受け取っていないので、私自身の質問に答えています。

まず、適切な権限("user_photos"または"friends_photos")が必要です。その後、テストデバイスがあなたの権限を更新していることを確認しなければなりません。私はデバイスを再起動することが最終的に私のために行ったと思います。すべての種類の

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

これは(キーdata下)JSON配列を与える:あなたはこのコールを使用して、SSO経由でログインした後、アルバムのJSONのリストを取得することができることをやったら

IDを含む各アルバムに関する情報の

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

あなたの応答はもちろん、あなたがJSONデータを処理することができFBRequestDelegate方法request:didLoad経由で来る:特定のアルバムIDの写真の一覧を取得するには、次の操作を行い(「123456789」は言います)。

+0

これについてあなたの作品のコピーを入手できますか?私はユーザーが自分のFBから写真を取得できるようにしたいが、どこから始めるべきかはわからない。 – Shinigamae

+0

結果が出ました=== { data =( ); }私/アルバムのリクエスト。何か間違ったことをお勧めしますか? – Imran

+0

@Imran権限を確認して、正しくログインしていることを確認しましたか?それを超えて、新しい質問、幸運を投稿することをお勧めします! –

1

は、あなたのフォルダ内に追加FBGraphのAPIドキュメントフォルダをダウンロードしてください。 Facebookの開発者サイトhttp://developers.facebook.com/docs/reference/api/の指示を読んでください。

これはサンプルコードです - あなたはUIAlertViewでユーザープロファイルの写真を取得します。この中sample code

。あなたはどこでそれを表示することができます。

+0

ありがとう、私はサンプルコードを見ていきます - 私はそれがもはや維持されていないというメモを見ますが、これは最新ですか? –

+0

ねえ、あなたはそれがすばらしいと確信しています。私は私のアプリの1つでそれを使用しています。 1つのメソッド - (IBAction)getAuthorPictureButtonPressed:(id)送信者があります。ちょうどそれをチェックしてください – TheTiger

+0

私はそれを試してみる、間違いなく役立つ。 –

関連する問題