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.

しかし、ツイートを取得するために Twitter 資格情報を設定する必要があるのはなぜですか?

私のコードに何か問題がありますか?

ありがとうございました!

4

2 に答える 2

1

私は scribe ライブラリを使用して、OAuth プロトコルを使用した認証を、さまざまな種類の api (たとえば twitter など) に使用しています。この情報が役に立てば幸いです。

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

于 2014-06-11T13:56:55.883 に答える
1

ドキュメントにあるように、API 1.1以降は認証が必要です。

バージョン 1.1 では、アプリケーションはすべてのリクエストを OAuth 1.0a またはアプリケーションのみの認証で認証する必要があります。この可視性により、不正行為を防止できるだけでなく、アプリケーションのカテゴリが API をどのように使用しているかをさらに理解するのにも役立ちます。プラットフォームを進化させ続けるにつれて、開発者のニーズをよりよく満たすために、その理解を適用します。現時点では、すべての認証にユーザー コンテキストが必要ですが、今後数週間で、ユーザー コンテキストを必要としない認証形式のサポートをプッシュする予定です。

于 2014-06-11T13:45:32.303 に答える