7

重複の可能性:
iOS経由でFacebookの写真を取得する際の問題

私のアプリのiPhoneでfbconnectを介してユーザーのFacebookプロフィール写真を取得するにはどうすればよいですか?

4

3 に答える 3

16

最も簡単な方法はこれだと思います:

NSString *fbuid = @"1234567890";
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?", fbuid]];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *profilePic = [[[UIImage alloc] initWithData:data] autorelease];
于 2011-05-23T10:33:04.480 に答える
16

http://developers.facebook.com/docs/apiを詳しく調べてみてください。userpicへのリンクは次のとおりです。

http://graph.facebook.com/000000000/picture

000000000ログに記録されたユーザーのIDはどこにありますか。

Michael Gaylordによる更新:リクエストにタイプを追加して、さまざまなサイズの画像を取得することもできます。したがって、リクエストは次のようになります。大きな画像の場合はhttp://graph.facebook.com/00000000/picture?type=large 。他のオプションは、小さい、通常、正方形です。

于 2010-09-24T07:01:14.150 に答える
4

ここでは、これらのデリゲートメソッドを使用して、ユーザーの画像を取得します。

セッションを作成すると、didLoginというデリゲートメソッドが取得されます

- (void)session:(FBSession*)session didLogin:(FBUID)uid {

    isLoginSuccessful = TRUE;
    if(isLoginCanceled == FALSE) {
        [self fetchUserDetails];
    }
}

- (void)sessionDidNotLogin:(FBSession*)session {
    isLoginSuccessful = FALSE;
    isLoginCanceled = TRUE;
}

- (void)sessionDidLogout:(FBSession*)session {
    isLoginSuccessful = FALSE;
    isLoginCanceled = TRUE;
}

- (void)fetchUserDetails {

    NSString* fql = [NSString stringWithFormat:
                     @"select name,sex,pic from user where uid == %lld", _session.uid];

    NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"query"];
    [[FBRequest requestWithDelegate:self] call:@"facebook.fql.query" params:params];
}

メソッドrequestWithDelegateを呼び出した後、成功した場合、このメソッドで応答を受け取ります

- (void)request:(FBRequest*)request didLoad:(id)result {
    if ([request.method isEqualToString:@"facebook.fql.query"]) {
        NSArray* users = result;
        NSDictionary* user = [users objectAtIndex:0];
                NSLog(@"User Details %@",user);
        if(fbUserDetails == nil) {
            self.fbUserDetails = [[NSDictionary alloc] initWithDictionary:user];
        }
        if(isLoginSuccessful) {
            NSString *fbUid = [NSString stringWithFormat:@"%lld",_session.uid];
            self.FBUserID = fbUid;
            [_delegate loggedInFaceBookSuccessfully:fbUid];
        }

    }
}

GDBで確認できるjson形式ですべての詳細を取得できます

于 2010-09-24T07:16:01.680 に答える