0

Facebook SDK 3.0 を 3.2 にアップグレードしています。Facebook SDK 3.2 を使用して Facebook ログインを行いましたが、正常に動作しています。ユーザーのアルバムを取得するために fql を実行したいと思います。以下のコードは、Facebook の写真を取得するために機能しますが、ユーザーのアクセス許可のためにアルバムには機能しません。Facebook SDK 3.2 の "user_photos" パーミッションを設定する方法がわかりません。助言がありますか?前もって感謝します。

NSString *query =
@"SELECT pid, src_small, src_big, src FROM photo WHERE aid IN "
@"SELECT aid FROM album WHERE owner = me() ORDER BY created DESC LIMIT 50";

NSDictionary *queryParam =
[NSDictionary dictionaryWithObjectsAndKeys:query, @"q", nil];

[FBRequestConnection startWithGraphPath:@"/fql"
                             parameters:queryParam
                             HTTPMethod:@"GET"
                      completionHandler:^(FBRequestConnection *connection,
                                          id result,
                                          NSError *error) {
                          if (error) {
                              NSLog(@"Error: %@", [error localizedDescription]);
                          } else {
                              NSLog(@"Result: %@", result);
                          }
                      }];
4

1 に答える 1

1

上記のコードは写真を取得するために機能すると言っています。これは、ユーザーのアルバムを取得するために必要な「user_photos」権限を既に持っていることを意味します (どちらも同じ権限です。Graph API のドキュメントを参照してください)。

その場合は、次のクエリを使用して簡単にアルバムを取得できます。

SELECT aid, name, link, cover_pid 
FROM album 
WHERE owner = me() 

それ以外の場合、本当にアクセス許可がない場合は、ユーザーの写真も取得できないことを意味します。その場合、ユーザーに関連する権限で再認証するよう依頼する必要があります。FBSession新しいパーミッションで通常の承認メソッドを呼び出すだけで、ユーザーにその許可を求めるプロンプトが表示されます。

とにかく、Graph API Explorerを使用して FQL クエリをテストすることをお勧めします。これにより、何が問題なのかを簡単に認識することができます。

于 2013-03-12T16:12:45.767 に答える