1

ユーザーがFacebookに接続すると、Facebookからデータを取得する簡単なアプリを開発しようとしています。

ユーザーの写真とユーザーの名前を取得する方法に関する Facebook の例を読んだ後、たとえば、性別、都市、電子メール、生年月日などの情報を取得したいだけです。

次の部分は、私が行き詰まった場所です:

- (void)populateUserDetails
{

    if (FBSession.activeSession.isOpen) {


        [[FBRequest requestForMe] startWithCompletionHandler:
         ^(FBRequestConnection *connection,
           NSDictionary<FBGraphUser> *user,
           NSError *error) {
             if (!error) {
                 self.userNameLabel.text = user.name;
                 self.userProfileImage.profileID = user.id;

             }
         }];

    }

}

私の質問は次のとおりです。

  • このすべてのデータで辞書を作成する必要がありますか? (性別、市区町村、電子メールなど) - また、ストーリーボードを使用していますが、Facebook のチュートリアルにあるように、これらすべてのデータにユーザー名にラベルを使用できますか?
  • メソッド requestForMe は、探している他のタイプのデータには適切ではないことをいくつかの場所で読みました。私のリクエストにはどのような方法がありますか?
4

1 に答える 1

4

まず、ユーザーに性別、メールアドレス、市区町村へのアクセス許可を求める必要があります...

必要なアクセス許可を持つ配列を作成し、openActiveSessionWithReadPermissions:メソッドに追加します。

NSArray *permissions = [[NSArray alloc] initWithObjects:@"user_birthday",@"user_hometown",@"user_location",@"email",@"basic_info", nil];

  [FBSession openActiveSessionWithReadPermissions:permissions
                                     allowLoginUI:YES
                                completionHandler:^(FBSession *session,
                                                    FBSessionState status,
                                                     NSError *error) {
                                      }];

次に、このようなリクエストを作成して、必要な情報を取得します

[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
       NSLog(@"%@", [result objectForKey:@"gender"]);
       NSLog(@"%@", [result objectForKey:@"hometown"]);
        NSLog(@"%@", [result objectForKey:@"birthday"]);
        NSLog(@"%@", [result objectForKey:@"email"]);
   }];

問題が解決したことを願っています。

于 2013-08-29T23:22:36.770 に答える