0

我正在使用此链接中的示例在 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.

但是,为什么我必须设置一些推特凭据才能获取推文?

我的代码有问题吗?

谢谢!

4

2 回答 2

1

自 API 1.1 起就需要身份验证,正如其文档所述:

在 1.1 版中,我们要求应用程序使用 OAuth 1.0a 或仅应用程序身份验证对其所有请求进行身份验证。这种可见性不仅可以让我们防止滥用行为,还可以帮助我们进一步了解应用程序类别是如何使用 API 的。随着我们继续发展平台,我们将运用这种理解来更好地满足开发人员的需求。目前,所有身份验证都需要用户上下文,但在接下来的几周内,我们将推出对不需要用户上下文的身份验证形式的支持。

于 2014-06-11T13:45:32.303 回答
1

我使用 scribe 库通过 OAuth 协议对许多 API 进行身份验证,例如 twitter,我希望这些信息可以帮助你。

https://github.com/fernandezpablo85/scribe-java

于 2014-06-11T13:56:55.883 回答