我正在使用此link的示例在Twitter上进行搜索。
这是我的代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
searchTweets();
}
private void searchTweets() {
Twitter twitter = new TwitterFactory().getInstance();
try {
Query query = new Query("android");
QueryResult result;
do {
result = twitter.search(query);
List<Status> tweets = result.getTweets();
for (Status tweet : tweets) {
System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText());
}
} while ((query = result.nextQuery()) != null);
System.exit(0);
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to search tweets: " + te.getMessage());
System.exit(-1);
}
}
}
我使用的是twitter4j-core-3.0.3
我正面对此错误消息:
Unable to start activity {...MainActivity}: java.lang.IllegalStateException:
Authentication credentials are missing. See http://twitter4j.org/configuration.html for the detail.
但是,为什么我必须设置一些Twitter凭证来获取推文?
我的代码有问题吗?
谢谢!
答案 0 :(得分:1)
自API 1.1开始需要进行身份验证,其documentation表示:
在1.1版中,我们要求应用程序使用OAuth 1.0a或仅应用程序身份验证对其所有请求进行身份验证。这种可视性不仅可以防止滥用行为,还可以帮助我们进一步了解应用程序类别如何使用API。随着我们不断发展平台,我们将应用这种理解以更好地满足开发人员的需求。此时,所有身份验证都需要用户上下文,但在接下来的几周内,我们将推出对不需要用户上下文的身份验证形式的支持。
答案 1 :(得分:1)
我使用抄写员库对OAuth协议进行身份验证,用于各种api,例如twitter,我希望这些信息可以帮到你。