【发布时间】:2011-03-10 21:09:27
【问题描述】:
我正在尝试将 Three20 Facebook 示例应用与 Facebook Graph API 一起使用(进行身份验证并获取访问令牌)。我正在为 TTURLRequest 使用以下代码:
- (void)load:(TTURLRequestCachePolicy)cachePolicy more:(BOOL)more {
if (!self.isLoading && TTIsStringWithAnyText(_query)) {
NSString* url = _query;
NSLog(@"load:%@:", url);
TTURLRequest* request = [TTURLRequest requestWithURL:url delegate:self];
request.cachePolicy = cachePolicy | TTURLRequestCachePolicyEtag;
request.cacheExpirationAge = TT_CACHE_EXPIRATION_AGE_NEVER;
TTURLJSONResponse* response = [[TTURLJSONResponse alloc] init];
request.response = response;
TT_RELEASE_SAFELY(response);
[request send];
}
}
这对于没有访问令牌(即https://graph.facebook.com/markzuckerberg/feed)的 url 非常有效,但是每当我在完全相同的页面上使用访问令牌(即https://graph.facebook.com/markzuckerberg/feed?access_token=...)时,我都会收到描述“错误 url”的错误。将任一 URL 复制到 Web 浏览器表明两者都可以正常工作,但 URL 请求只会为带有 access_token 的那个生成错误。
我能想到的唯一可能的解释是 TTURLRequest 对 URL 的长度有限制。有谁知道为什么会发生这种情况和/或有任何解决方法?
更新:这就是我构建 URL 的方式:
self.accessToken = [_facebook.accessToken stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
self.dataSource = [[[TTFacebookNewsFeedDataSource alloc] initWithQuery:[NSString stringWithFormat:@"http://graph.facebook.com/markzuckerberg/feed?access_token=%@", self.accessToken]] autorelease];
【问题讨论】:
标签: json ios facebook-graph-api three20