2013-04-01 3 views
2

Я пытаюсь импортировать контакты GMail (список друзей). У меня есть идентификатор электронной почты друзей, имя и номер телефона, но если я попытаюсь получить изображения, то он скажет «Ошибка 401».Как получить фото профиля друзей из контактов gmail?

Код я использовал это следующим образом:

GDataLink *photoLink = [contact photoLink]; 
NSLog(@"%@",photoLink); 

NSURL *imageURL = [photoLink URL]; 
NSLog(@"image url = %@",imageURL); 

Как я могу получить фотографию друзей? Где я неправ?

+0

Какое значение имеет для вас типичный URL-адрес фотолинии, когда он зарегистрирован в вашей консоли? –

+0

https://www.google.com/m8/feeds/photos/media/username%40gmail.com/63402b0d25e6ad У меня есть ссылка, как и выше – Ann

+0

Так есть ли другой способ получить URL-адрес фотолинии? – Ann

ответ

1

Looking at some other (public) code that's roughly the same as what you're doing, я вижу, что вы должны быть с помощью токена аутентификации с этим фото ссылкой. Без этого токена аутентификации Google предполагает, что вы можете быть злонамеренным и отправите обратно ошибку 401.

E.G.

GDataLink *photoLink = [contact photoLink]; 

    NSString *imageETag = [photoLink ETag]; 
    if (imageETag == nil || ![mContactImageETag isEqual:imageETag]) { 

     if (imageETag != nil) { 

     // get an NSURLRequest object with an auth token 
     NSURL *imageURL = [photoLink URL]; 
     GDataServiceGoogleContact *service = [self contactService]; 

     // requestForURL:ETag:httpMethod: sets the user agent header of the 
     // request and, when using ClientLogin, adds the authorization header 
     NSMutableURLRequest *request = [service requestForURL:imageURL 
                 ETag:nil 
                httpMethod:nil]; 

     [request setValue:@"image/*" forHTTPHeaderField:@"Accept"]; 

     GTMHTTPFetcher *fetcher = [GTMHTTPFetcher fetcherWithRequest:request]; 
     [fetcher setAuthorizer:[service authorizer]]; 
     [fetcher beginFetchWithDelegate:self 
       didFinishSelector:@selector(imageFetcher:finishedWithData:error:)]; 
     } 
    } 
    } 
+0

Привет ее получении сбой при вызове метода '@selector (imageFetcher: finishedWithData: ошибка :)' метод Fetcher является «- (GDataServiceGoogleContact *) contactService { статический GDataServiceGoogleContact сервис * = ноль ; if (! Service) { service = [[GDataServiceGoogleContact alloc] init]; [сервисный наборShouldCacheResponseData: YES]; [service setServiceShouldFollowNextLinks: YES]; [service setAuthorizer: @ «Ток доступа»]; } служба возврата; } – Ann