twitter4j: получать учетные ошибки, даже если я их установил? - PullRequest
1 голос
/ 13 июля 2011
package twitter4j.examples.tweets;

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;
import twitter4j.conf.*;

import java.io.IOException;

public final class UpdateStatus {

    public static void main(String[] args) throws IOException {

        String testPost = "hello from otc";
        String consumerKey = "key";
        String consumerSecret = "secret";
        String accessToken = "access";
        String accessSecret = "access_secret";

        ConfigurationBuilder cb = new ConfigurationBuilder();

        cb.setDebugEnabled(true)
            .setOAuthConsumerKey(consumerKey)
            .setOAuthConsumerSecret(consumerSecret)
            .setOAuthAccessToken(accessToken)
            .setOAuthAccessTokenSecret(accessSecret);

        try {
            TwitterFactory factory = new TwitterFactory();
            Twitter twitter = factory.getInstance();
            AccessToken accestoken = new AccessToken(accessToken, accessSecret);

            twitter.setOAuthAccessToken(accestoken);
            Status status = twitter.updateStatus(testPost);
            System.out.println("it worked!");
            if (status.getId() == 0) {
                System.out
                        .println("Error occured while posting tweets to twitter");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

почему я продолжаю получать эту ошибку:

401: учетные данные аутентификации (http://dev.twitter.com/pages/auth) отсутствовали или неверны. Убедитесь, что вы установили действительный ключ / секретный ключ пользователя, токен / секретный ключ доступа иСистемные часы синхронизированы. Ошибка - Не удалось аутентифицироваться с помощью запроса OAuth. - /1/statuses/update.json Соответствующие обсуждения могут быть в Интернете по адресу: http://www.google.co.jp/search?q=e06d87a8 или http://www.google.co.jp/search?q=5851cbdb TwitterException {exceptionCode= [e06d87a8-5851cbdb], statusCode = 401, retryAfter = -1, rateLimitStatus = null, featureSpecificRateLimitStatus = null, версия = 2.2.3} в twitter4j.internal.http.HttpClientImpl.request (HttpCliavaI9: 18: j4)internal.http.HttpClientWrapper.request (HttpClientWrapper.java:65) в twitter4j.internal.http.HttpClientWrapper.post (HttpClientWrapper.java:102) в twitter4j.TwitterImpl.post (TwitterImpl.jattjjtw4)(TwitterImpl.java:459) на twitter4j.examples.tweets.UpdateStatus.main (UpdateStatus.java:35)

Я установил учетные данные вфайл уже есть, не так ли?

1 Ответ

2 голосов
/ 14 июля 2011

Я понял, вот рабочий код:

package twitter4j.examples.tweets;

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;

import java.io.IOException;

public final class UpdateStatus {

    public static void main(String[] args) throws IOException {

        String tweet = "your first tweet via java";

        String accessToken = "your access token";
        String accessSecret = "your access token secret";

        try {
            TwitterFactory factory = new TwitterFactory();
            Twitter twitter = factory.getInstance();
            AccessToken accestoken = new AccessToken(accessToken, accessSecret);

            twitter.setOAuthAccessToken(accestoken);
            Status status = twitter.updateStatus(tweet);
            System.out.println("it worked!");
            if (status.getId() == 0) {
                System.out
                        .println("Error occured while posting tweets to twitter");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

примечание: чтобы это работало, вы ДОЛЖНЫ создать приложение в твиттере у вас должен быть файл twitter4j.properties, который содержит следующее

debug set to true
oauth.consumerKey 
oauth.consumerSecret 
oauth.accessToken 
oauth.accessTokenSecret

все ключи и токены взяты из приложения твиттера убедитесь, что на уровне доступа к вашему приложению написано «читать и писать»

...