访问Google阅读器的terminalAPI时出错

我试图在iPhone APP中实现谷歌阅读器,到目前为止,我已经成功地收到了SID身份validation 。 当我尝试使用GET调用Endpoints API时,问题就出现了。下面是代码:

ASIHTTPRequest *request = [self requestForAPIEndpoint:@"https://www.google.com/reader/api/0/subscription/list?output=json"]; [request setDelegate:self]; [request startAsynchronous]; - (ASIHTTPRequest *) requestForAPIEndpoint: (NSString *) apiEndpoint { ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString: apiEndpoint]]; [request addRequestHeader: @"User-Agent" value: @"YourClient"]; [request addRequestHeader: @"Cookie" value: signature]; NSLog(@"Sig = %@",signature); [request addRequestHeader: @"Authorization" value: autho]; return request. } 

autho和签名被正确设置。 不过每次我都会在 – (void)requestFailed:(ASIHTTPRequest *)请求方法中得到callback。 我做错了什么? 我是否需要注册一些访问API的位置并将用户代理设置为该名称?

我修改了requestForAPIEndpoint方法如下,然后我也有同样的问题。

 - (ASIHTTPRequest *) requestForAPIEndpoint: (NSString *) apiEndpoint { NSDictionary *properties = [[[NSMutableDictionary alloc] init] autorelease]; [properties setValue:signature forKey:NSHTTPCookieValue]; [properties setValue:@"SID" forKey:NSHTTPCookieName]; [properties setValue:@".google.com" forKey:NSHTTPCookieDomain]; [properties setValue:@"1600000000" forKey:NSHTTPCookieExpires]; [properties setValue:@"/" forKey:NSHTTPCookiePath]; NSHTTPCookie *cookie = [[[NSHTTPCookie alloc] initWithProperties:properties] autorelease]; ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString: apiEndpoint]]; [request setUseCookiePersistence:NO]; [request setRequestCookies:[NSMutableArray arrayWithObject:cookie]]; [request addRequestHeader: @"User-Agent" value: @"YourClient"]; [request addRequestHeader: @"Authorization" value: autho]; return request; } 

如果使用ClientLogin(通过Authorization标头),则不需要提供SID cookie。 有关支持的身份validationscheme,请参阅http://code.google.com/p/google-reader-api/wiki/Authentication

此外, Authorization标头应该格式化为GoogleLogin auth=<auth token> ,其中<auth token>是来自ClientLogin响应的Auth值。

Interesting Posts