我正在尝试导入 GMail 联系人( friend 列表)。我有 friend 的邮件 ID、姓名和电话号码,但如果我尝试获取图像,它会显示“401 错误”。
我用过的代码如下:
GDataLink *photoLink = [contact photoLink];
NSLog(@"%@",photoLink);
NSURL *imageURL = [photoLink URL];
NSLog(@"image url = %@",imageURL);
如何获取 friend 的头像?我哪里出错了?
最佳答案
Looking at some other (public) code that's roughly the same as what you're doing ,我看到您应该对这些照片链接使用auth token。如果没有该授权 token ,Google 会认为您可能是恶意的,并会发回 401 错误。
例如
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:)];
}
}
}
关于ios - 如何从gmail联系人中获取 friend 的个人资料图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15738482/