11

現在、多数のユーザーの userTimeline を取得しようとしています。これは過去に私にとってはうまくいきましたが、今はもううまくいきません。私はtwitter4jを使用しており、oauthを使用しています。これまでにアカウントに 2 つのアプリケーションを登録しましたが、どちらも twitter-api にアクセスできるはずです。しかし、昨日から 401 - authentication redentials missing or wrong (両方のアプリケーションを試しました) が表示されます。Twitter は API に最近変更を加えましたか? 新しいツイッターアカウントを設定する必要がありますか?アプリケーションを作成して自分のアカウントにアクセスできるようにするのは適切な方法ですか?

これはコードです:

ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
      .setOAuthConsumerKey("q...w")
      .setOAuthConsumerSecret("R...o")
      .setOAuthAccessToken("2...7")
      .setOAuthAccessTokenSecret("O....8");

  TwitterFactory tf = new TwitterFactory(cb.build());

    Twitter twitter = tf.getInstance();
  for ( Map.Entry<Long, String> entry : tmls.entrySet()) {

        long uid = entry.getKey();

        Paging paging = new Paging(1, count);

        ResponseList<Status> rls;

        try {
            rls = twitter.getUserTimeline(uid, paging);

            for ( int j = 0 ; j < rls.size() ; j++ ) {

                if (false == ltindex.contains(uid)) {


                    alsa.add(new String[] {  String.valueOf( rls.get(j).getId() ) , String.valueOf( uid ), rls.get(j).getText() , "", entry.getValue(), String.valueOf( rls.get(j).getCreatedAt().getTime() )  });

                }

            }


        } catch (TwitterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

  }

エラー:

  401:Authentication credentials (http://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid conumer key/secret, access token/secret, and the system clock in in sync.
  error - Not authorized
  request - /1/statuses/user_timeline.json?user_id=14221532&include_rts=true&include_entities=false&count=10&page=1
  Relevant discussions can be on the Internet at:
    http://www.google.co.jp/search?q=ced778ef or
    http://www.google.co.jp/search?q=10a1ea9d
  TwitterException{exceptionCode=[ced778ef-10a1ea9d], statusCode=401, retryAfter=0, rateLimitStatus=RateLimitStatusJSONImpl{remainingHits=273, hourlyLimit=350, resetTimeInSeconds=1304422, secondsUntilReset=845, resetTime=Tue May 03 11:36:48 UTC 2011}, version=2.2.3-SNAPSHOT(build: ddf24547632bf3a28b899e3d75b110de43f71c0f)}
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:189)
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65)
    at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:85)
    at twitter4j.TwitterImpl.get(TwitterImpl.java:1738)
    at twitter4j.TwitterImpl.getUserTimeline(TwitterImpl.java:246)
    at getExpertTweets.getSpecificOpinions(getExpertTweets.java:89)
    at classifyTweet.main(classifyTweet.java:57)
  root@se1:~# sudo ntpdate pool.ntp.org
4

7 に答える 7

6

コンシューマ キーとトークンに問題があります。手順に従ってください。

https://dev.twitter.com/にログインし、Goto My application は、あなたの尊敬されるアプリケーションを意味します。と goto settings と Change access permission から Read, write, and direct messages

データを更新し、更新されていない場合はトークンを再作成し、データとプログラムも更新します。プログラムを実行し、そのすべてのjarファイルがlibフォルダーにあることを確認してください。そして問題は解決されます。

于 2013-09-13T07:24:52.197 に答える
1

この例外メッセージのグーグル検索に役立つ場合に備えて、これを共有すると思いました。

JSF アプリケーションの Twitter 認証をテストしているときに、次の使用例を試しました。

Twitter認証画面を開きます。適切な資格情報を入力してサインインします。

出来た。それで、私は試しました:

Twitter認証画面を開きます。Twitter認証画面を閉じます。再度 Twitter 認証ウィンドウを開きます。適切な資格情報を入力し、[サインイン] をクリックします。

後者では、常に 401 認証資格情報が見つからないか、正しくない例外が発生していました。

私の問題は、サーバーが Twitter 認証プロセスを再起動していたが、RequestToken.getAuthenticationURL() の値が適切に UI に返されず、古い URL で Twitter API を呼び出すことでした。

簡単に言えば、クライアントが使用する認証 URL が、サーバーが期待するものと一致することを確認してください。

于 2014-10-27T19:00:21.303 に答える
0

今日 02.05.2015 twitter4j 3.0.x バージョンを使用して同様のエラーが発生しました。

twitter4j をバージョン 4.0.0 にアップデートするまでは入手できました。

  <dependencies>
  <dependency>
      <groupId>org.twitter4j</groupId>
      <artifactId>twitter4j-core</artifactId>
      <version>[4.0,)</version>
  </dependency>
  ...

于 2015-05-02T14:04:52.157 に答える
0

同じ問題に直面し、修正しました。デバイスの日付と時刻が正しくない場合、この問題が発生します..

于 2016-08-08T11:16:39.337 に答える