1

Xcode 4.5 でアプリケーションを作成しました。これには、Facebook のログイン プロセス、友人とその基本情報のクエリ、およびいくつかのニュースフィード公開プロセスが正常に組み込まれています。ただし、特定の Facebook オブジェクト (この場合は写真) を「いいね」した友人をクエリしようとすると問題が発生します。これまでに行ったことは次のとおりです。

  1. - (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI メソッドで次の権限を要求しました:user_about_me、read_friendlists、friends_likes、read_stream、friend_likes、user_likes、friends_photos、user_photos。

  2. 私は Facebook に行って、Facebook の友達の何人かが気に入っている写真を見つけました。次に、 https://graph.facebook.com/?ids=https://wwwにアクセスして、写真の ID を調査しました。urlToFBPhoto

  3. 次のクエリ コードを使用しました (このようなクエリに関する Facebook 開発者ページ: urlに従って) SELECT user_id FROM like WHERE object_id="10152365284110475".

  4. このクエリから得られたデータの NSLog を実行すると、写真のように知っている数人の友人の uid が得られることを期待していました。しかし、代わりに、クエリはまったく結果を返しませんでした。

わかりやすくするために、使用した完全なクエリ コードを次に示します。

- (IBAction)getFriendLikes:(id)sender 

NSString *objectID = @"10152365284110475"; //object id of a friend's FB photo

NSString *query = [NSString stringWithFormat:

@"{"
@"'friendlikes':'SELECT user_id FROM like WHERE object_id=%@'," //no data
//@"'friends':'SELECT uid2 FROM friend WHERE uid1 = me()'," //returns data
//@"'friendinfo':'SELECT uid, name, sex, pic_big, pic_square FROM user WHERE uid IN 
//(SELECT uid2 FROM #friends)'," //returns data
                   @"}",objectID];


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);
                          }

                          NSArray *friendInfo =  (NSArray *) [[[result 
                                                        objectForKey:@"data"]
                                                               objectAtIndex:1]

                                                objectForKey:@"fql_result_set"];

                          [DataController dc].fbArray = nil;
                          [DataController dc].fbArray = friendInfo;

                          //post callback tasks

                      } ];
           }

誰かが何か助けを提供できるなら、私はそれを大いに感謝します!

4

0 に答える 0