自从 Twitter 迁移到 API v1.1 后,我尝试切换到 Twitter4j 来执行我的查询。我已经在 twitter 上设置了我的开发帐户,并且我很确定我已经设置了 OAuth ok:
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true).setOAuthConsumerKey("XXX")
.setOAuthConsumerSecret("XXX")
.setOAuthAccessToken("XXX")
.setOAuthAccessTokenSecret("XXX");
Twitter twitter = new TwitterFactory(cb.build()).getInstance();
System.setProperty("twitter4j.debug", "true");
try
{
String url = "q=%40twitterapi%20-via";
Query query = new Query(url);
QueryResult result;
do
{
result = twitter.search(query);
List<Status> tweets = result.getTweets();
for (Status tweet : tweets)
{
results.add(getInfoFromTweet(tweet));
}
} while ((query = result.nextQuery()) != null);
} catch (TwitterException te)
{
Log.e(TAG, "Problem gettibng results from twitter: " + url, te);
}
主要问题是我从来没有在结果中返回任何推文,尽管就我所见,结果本身似乎结构合理。当我直接在网络浏览器中尝试时,我使用的查询字符串似乎会给出很多结果:https ://twitter.com/search/realtime?q=%40twitterapi%20-via
另一件事是我无法弄清楚如何在 Android 中从 Twitter4j 获取调试输出。我已经尝试了所有可以找到的调试输出,但它要么没有出现,要么我没有找到正确的位置!