2013-04-01 118 views
2

我正在嘗試導入GMail聯繫人(好友列表)。我有朋友的郵件ID,姓名和電話號碼,但是如果我試圖讓圖片顯示「401錯誤」。如何從Gmail聯繫人獲取朋友個人資料圖片?

我用的代碼如下:

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

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

我怎樣才能得到朋友的個人資料圖片?我哪裏做錯了?

+0

當您的控制檯登錄時,典型的photoLink URL會是什麼樣子? –

+0

https://www.google.com/m8/feeds/photos/media/username%40gmail.com/63402b0d25e6ad我有一個鏈接就像上面 – Ann

+0

那麼有沒有其他方式來獲取photolink網址? – 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:錯誤:)」 提取程序的方法是 「 - (GDataServiceGoogleContact *)的ContactService { 靜態GDataServiceGoogleContact *服務=零; if(!service){0}服務= [[GDataServiceGoogleContact alloc] init]; [service setShouldCacheResponseData:YES]; [service setServiceShouldFollowNextLinks:YES]; [service setAuthorizer:@「My Access Token」]; } return service; }' – Ann

相關問題