在OSX Mavericks 10.9上执行Twitter的SLRequest返回"无法验证您" 任何 Twitter API请求的错误代码32。简单的代码片段如下所示。
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
[accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
ACAccount *account = [accountsArray lastObject];
NSURL *url = [NSURL URLWithString:@"http://api.twitter.com/1.1/help/test.json"];
SLRequest *r = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:url parameters:nil];
r.account = account;
[r performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSLog(@"%@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
dispatch_semaphore_signal(semaphore);
}];
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
对我来说很奇怪的是,这个完全相同的代码片段在iOS上运行没有任何问题。 ACAccount似乎有效,preparedURLRequest似乎有所有OAuth HTTP标头,我不确定什么可能是错的......有什么想法吗?
答案 0 :(得分:0)
有点晚了,但你需要指定https。 :-)是否需要更多来解决你的问题,我不知道!
答案 1 :(得分:0)
显然,这个URL在HTTP和HTTPS上都不存在,除了在问题发布时,Twitter正在响应错误32,我猜,这是一个错误。
无论如何,一切都适用于其他网址。