我希望使用Twitter Search API获取推文列表。但是最近twitter推出了新版本1.1,它需要授权。我正在使用STTwitter库与Twitter API进行交互。
我正在使用STTwitter_ios项目,你可以从这里找到: https://github.com/nst/STTwitter/tree/master/ios
现在,我编写了一个示例函数:fetchTweets。授权工作成功,如果我搜索单词(没有空格或特殊字符),我就会得到列表。但是当我尝试使用空格或特殊字符搜索关键字,如“纽约”,@“新建或约克”等时,它会返回错误:
在方法中,
- (void)connectionDidFinishLoading:(NSURLConnection *)连接
我收到错误:
{“errors”:[{“message”:“无法验证您”,“代码”:32}]}
- (void) fetchTweets {
STTwitterAPIWrapper *twitter = [STTwitterAPIWrapper twitterAPIWithOAuthConsumerName:OAUTH_CONSUMER_NAME consumerKey:OAUTH_CONSUMER_KEY consumerSecret:OAUTH_CONSUMER_SECRET oauthToken:OAUTH_TOKEN oauthTokenSecret:OAUTH_SECRET_TOKEN];
NSString *query = @"New york";
NSString *searchQuery = [query stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[twitter getSearchTweetsWithQuery:searchQuery successBlock:^(NSDictionary *searchMetadata, NSArray *statuses) {
NSLog(@"Search data : %@",searchMetadata);
NSLog(@"\n\n Status : %@",statuses);
} errorBlock:^(NSError *error) {
NSLog(@"Error : %@",error);
}];
}
任何帮助或建议都将不胜感激!
谢谢!
答案 0 :(得分:5)
最后,我删除了OAuth令牌,它运行正常!
见下面的代码:
STTwitterAPIWrapper *twitter = [STTwitterAPIWrapper twitterAPIApplicationOnlyWithConsumerKey:OAUTH_CONSUMER_KEY consumerSecret:OAUTH_CONSUMER_SECRET];
[twitter verifyCredentialsWithSuccessBlock:^(NSString *username) {
[twitter getSearchTweetsWithQuery:searchQuery successBlock:^(NSDictionary *searchMetadata, NSArray *statuses) {
NSLog(@"Search data : %@",searchMetadata);
NSLog(@"\n\n Status : %@",statuses);
} errorBlock:^(NSError *error) {
NSLog(@"Error : %@",error);
}];
} errorBlock:^(NSError *error) {
NSLog(@"-- error %@", error);
}];
答案 1 :(得分:2)
我是STTwitter的创始人Nicolas Seriot。
您遇到的问题是错误,我只是fixed it。
答案 2 :(得分:0)
尝试添加HTML编码关键字。例如
[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]