获取带有特殊字符的关键字的推文列表时,STTwitter库会返回错误

时间:2013-06-18 05:53:23

标签: ios iphone twitter sttwitter

我希望使用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);
    }];
}

任何帮助或建议都将不胜感激!

谢谢!

3 个答案:

答案 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]