0

ユーザーに関するアプリ情報を取得したい。彼の名前、年齢、場所、性別、プロフィール画像など。

今のところ私は使用しています:

-(void)facebookOpenSession{
FBRequest *me = [FBRequest requestForMe];
[me startWithCompletionHandler:^(FBRequestConnection *connection,
                                 id result,
                                 NSError *error) {
    NSDictionary *resultDic = (NSDictionary<FBGraphUser> *) result;
    facebookData = [[NSMutableDictionary alloc]initWithDictionary:resultDic];

    FBRequest *pic = [FBRequest requestForGraphPath:@"me/?fields=picture"];
    [pic startWithCompletionHandler:^(FBRequestConnection *connection,
                                     id result,
                                     NSError *error) {
        NSDictionary *resultDic = (NSDictionary<FBGraphUser> *) result;

        NSDictionary *dic = [resultDic objectForKey:@"picture"];
        NSDictionary *dic2 = [dic objectForKey:@"data"];
        NSString *imgUrl = [dic2 objectForKey:@"url"];
        NSLog(imgUrl);
    }];
}];

}

ユーザー プロファイルに対して 2 つのリクエストを作成し、画像に対してもう 1 つのリクエストを作成しました。別の情報を取得したい場合は、どうすればよいですか?

4

1 に答える 1

1

コードに注釈を付ける方法は、私にとっては読むのが少し奇妙なので、次のように書き直しました。

if (FBSession.activeSession.isOpen) {
    [[FBRequest requestForMe] startWithCompletionHandler:
     ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
         if (!error) {
             self.nameString = user.name;
             self.profileImage.profileID = user.id;
             self.userName = user.username;
         }
     }];
}

私が書いた方法よりもはるかに複雑ではありません。

ハッピーコーディング!

コメントによるコードへの追加:

Facebook から出力を取得する必要があります。画像の場合、コードは次のようになります。

FBProfilePictureView *profileImage.profileID = user.id;

user.idを開始すると、Facebook からFBRequest.

を実際に に変換するのFBProfilePictureViewUIImageViewはなく、作成FBProfilePictureViewした のサブビューとして を設定しUIViewます。

また、画像のトリミングを設定する必要があります。

profileImage.pictureCropping = FBProfilePictureCroppingSquare;

FBProfilePictureCroppingSquare数少ない選択肢の 1 つです。オプションについては、 Facebook Developerのドキュメントを参照してください。

于 2013-01-09T22:19:04.820 に答える