Как получить изображение профиля пользователя facebook через fbconnect в моем приложении iPhone?

Возможный дубликат:
Проблема с получением изображений Facebook через iOS< /а>

Как получить изображение профиля пользователя facebook через fbconnect в моем приложении iPhone?


person iOS_User    schedule 24.09.2010    source источник
comment
простой способ: github.com/jonasman/JNSocialDownload   -  person João Nunes    schedule 10.04.2015


Ответы (3)


Попробуйте посмотреть глубже через http://developers.facebook.com/docs/api. Вот ссылка на юзерпик:

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

Где 000000000 — идентификатор пользователя, вошедшего в систему.

ОБНОВЛЕНИЕ от Майкла Гейлорда: вы также можете добавить тип к запросу, чтобы получить другой изображения по размеру. Таким образом, ваш запрос будет выглядеть примерно так: http://graph.facebook.com/00000000/picture?type=large для большого изображения. Другие варианты: маленький, нормальный и квадратный.

person knuku    schedule 24.09.2010
comment
Вы также можете добавить тип к запросу, чтобы получить изображения разного размера. Таким образом, ваш запрос будет выглядеть примерно так: graph.facebook.com/00000000/picture?type= big для большого изображения. Другие варианты: маленький, нормальный и квадратный. - person Michael Gaylord; 18.04.2012

Я думаю, что самый простой способ это:

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];
person borisdiakur    schedule 23.05.2011

Здесь используйте эти методы делегата, чтобы получить изображение пользователя.

Когда вы создаете сеанс, вы получаете метод делегата с именем 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];
        }

    }
}

Вы получите все детали в формате json, которые вы можете увидеть в GDB.

person Rahul Vyas    schedule 24.09.2010
comment
Я показываю изображение профиля пользователя в UIWebView, но оно покрывает его часть, и я хочу, чтобы изображение покрывало всю область веб-просмотра. что я могу сделать для ее решения .... - person iOS_User; 24.09.2010
comment
Я получаю решение.......... - person iOS_User; 25.09.2010