Я пытаюсь использовать пример приложения Three20 Facebook вместе с API Graph Facebook (для аутентификации и получения токена доступа). Я использую следующий код для 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];
}
}
Это прекрасно работает для URL без маркеров доступа (например, https://graph.facebook.com/markzuckerberg/feed), но всякий раз, когда я использую токен доступа на той же самой странице (например, https://graph.facebook.com/markzuckerberg/feed?access_token=...), я получаю ошибку с описанием «неверный URL»). «Копирование любого URL-адреса в веб-браузер показывает, что оба они работают нормально, но запрос 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];