4

我想使用 Twitter Search API 获取推文列表。但是最近 twitter 推出了新的 version-1.1,它需要授权。我正在使用 STTwitter 库与 Twitter API 进行交互。

我正在使用 STTwitter_ios 项目,您可以从这里找到: https ://github.com/nst/STTwitter/tree/master/ios

现在,我编写了一个示例函数:fetchTweets。授权成功,如果我搜索单词(没有空格或特殊字符),我会得到列表。但是当我尝试使用空格或特殊字符(如“New york”、@“New or York”等)搜索关键字时,它会返回错误:

在方法中, - (void)connectionDidFinishLoading:(NSURLConnection *)connection
我收到错误:{"errors":[{"message":"Could not authenticate you","code":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);
    }];
}

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

谢谢 !

4

3 回答 3

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);
}];
于 2013-06-18T09:20:02.613 回答
2

我是 STTwitter 的创建者 Nicolas Seriot。

您遇到的问题是一个错误,我刚刚修复了它

于 2013-06-24T08:34:16.840 回答
0

尝试添加 HTML 编码关键字。例如与

 [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
于 2013-06-18T06:36:45.237 回答