2013-07-14 2 views
3

Мы пытаемся получить URL-адрес профиля профиля пользователя. Мы испытываем случайное поведение. Иногда диалог разрешения открывается в браузере, как ожидалось, но иногда браузер открывается с домашней страницы пользователей. любые идеи почему?iOS Facebook получить изображение профиля пользователя случайно открывает главную страницу профиля, а не диалог с разрешением

NSArray *permissions = [[NSArray alloc] initWithObjects:@"email",@"publish_actions", nil]; 
FBSession* session; 

session = [[FBSession alloc] initWithAppID:@"xxx" permissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone urlSchemeSuffix:nil tokenCacheStrategy:nil]; 

[FBSession setActiveSession:session]; 


// get image 

NSString *path = [[NSString alloc] initWithFormat:@"%@/picture?redirect=false&width=170&height=170",fuid]; 
[FBRequestConnection startWithGraphPath:path completionHandler:^] 

ответ

1

Это, как я хотел бы собрать Профиль пользователя картину, хотя есть много способов сделать это:

Я хотел бы использовать уведомление (или любой другой метод), чтобы уведомить, когда пользователь подписывается затем вызовите метод для сбора изображения профиля Facebook. Как только они войдут в систему, вы можете передать их идентификатор facebook в значение. (KUserFacebookIDKey)

NSLog(@"Downloading user's profile picture"); 
// Download user's profile picture 
NSURL *profilePictureURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large", self.kUserFacebookIDKey]; 
NSURLRequest *profilePictureURLRequest = [NSURLRequest requestWithURL:profilePictureURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0f]; // Facebook profile picture cache policy: Expires in 2 weeks 
[NSURLConnection connectionWithRequest:profilePictureURLRequest delegate:self]; 

Примечание: Вы должны обновить заголовок < NSURLConnectionDataDelegate> и добавить свойство для NSMutableData *_data;

Затем обрабатывать ответ:

#pragma mark - NSURLConnectionDataDelegate 
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 
    _data = [[NSMutableData alloc] init]; 
} 
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    [_data appendData:data]; 
} 
- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    [TESTUtility processFacebookProfilePictureData:_data]; 
} 

Тогда вы можете делать то, что вы хотите с файлом. Обычно я кэширую файл, а затем проверяю, соответствует ли кешированный файл новому и так далее ...

 Смежные вопросы

  • Нет связанных вопросов^_^