3

FBRequest を送信して友人の誕生日、場所、名前を取得し、結果を別のビューのテーブルに表示しようとしています。しかし、私は常にゼロの応答を受け取ります。最初にアクセス許可を設定してから、必須フィールドを含むリクエストを作成しました。

NSArray *permissions = [[NSArray alloc] initWithObjects:
                        @"user_birthday",@"friends_hometown",
                        @"friends_birthday",@"friends_location",
                        nil];

if (!FBSession.activeSession.isOpen) {
    [FBSession openActiveSessionWithReadPermissions:permissions
                                       allowLoginUI:YES
                                  completionHandler:^(FBSession *session,
                                                      FBSessionState state,
                                                      NSError *error) {
                                      if (error) {
                                          UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
                                                                                              message:error.localizedDescription
                                                                                             delegate:nil
                                                                                    cancelButtonTitle:@"OK"
                                                                                    otherButtonTitles:nil];
                                          [alertView show];
                                      } else if (session.isOpen) {
                                          NSLog(@"permissions::%@",session.permissions);

                                          NSLog(@"Open");
                                          FTBFriendTableViewController *ftbFriendTableViewController= [[FTBFriendTableViewController alloc] initWithNibName:@"FTBFriendTableViewController" bundle:nil];
                                          FTBAppDelegate *delegate=(FTBAppDelegate*)[[UIApplication sharedApplication] delegate];

                                          if (ftbFriendTableViewController.friendList == nil){
                                              ftbFriendTableViewController.friendList = [[NSMutableArray alloc] init];
                                          }
                                         FBRequest *friendRequest = [FBRequest requestForGraphPath:@"me/friends?fields=name,birthday,location"];

                                          [ friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                                              ftbFriendTableViewController.friendList = [result objectForKey:@"data"];
                                              for (FBGraphObject<FBGraphUser> *friend in test) {
                                                  NSLog(@"%@:%@", [friend name],[friend birthday]);
                                              }}];

                                          delegate.window.rootViewController = ftbFriendTableViewController;

                                      }
                                  }];
    return;
}

また、アプリケーションの plist に FacebookAppID、FacebookDisplayName、および URL 識別子を設定しました。これは、送信される実際のリクエストです。

FBRequest: 0x94c1080、セッション: 0xa1c5600、graphPath: me/friends?fields=name、birthday、location、HTTPMethod: GET、パラメーター: { "migration_bundle" = "fbsdk:20130409"; }

他に何が応答の問題を引き起こす可能性がありますか? ありがとう!

4

1 に答える 1

2

問題が見つかりました。.plist に「URL タイプ」パラメータを追加すると、XCode はデフォルトで「URL 識別子」を追加します。Facebook アプリの場合、「URL 識別子」の代わりに「URL スキーム」を追加し、値として fb[FacebookAppID] を割り当てる必要があります。

于 2013-08-12T07:16:27.043 に答える