2011-07-13 32 views
1
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(); 
     } 
    } 
} 

爲什麼我不斷收到此錯誤:twitter4j:即使我已經設置了他們,獲取憑據錯誤?

401:身份驗證憑據(http://dev.twitter.com/pages/auth)的缺失或不正確。確保您已設置有效的用戶密鑰/密碼,訪問令牌/密碼和系統時鐘同步。 錯誤 - 無法使用OAuth進行身份驗證。 請求 - /1/statuses/update.json 相關討論可在因特網上: http://www.google.co.jp/search?q=e06d87a8http://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(HttpClientImpl.java:189) 在twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65) 在twitter4j。 internal.http.HttpClientWrapper.post(HttpClientWrapper.java:102) at twitter4j.TwitterImpl.post(TwitterImpl.java:1871) at twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:459) 在twitter4j.examples.tweets.UpdateStatus.main(UpdateStatus.java:35)

我已經在文件中設置了憑據,我有沒有?

回答

2

我想通了繼承人的工作代碼:

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(); 
     } 
    } 
} 

注:這個工作,你必須創建在twitter上 的應用程序,您必須包含以下

debug set to true 
oauth.consumerKey 
oauth.consumerSecret 
oauth.accessToken 
oauth.accessTokenSecret 
一個twitter4j.properties文件

所有的密鑰和令牌都來自twitter應用 請確保您的應用訪問級別都說「讀寫」

+0

我沒有使用屬性文件,但代碼仍在工作。我正在編寫一個桌面應用程序。屬性文件僅用於Web應用程序嗎? –

+0

嗨,我沒有得到解決方案。首先是什麼問題?錯誤的證書或錯誤的系統時鐘?其次,唯一的改變是放棄在ConfigurationBuilder中的使用,而改爲使用配置文件twitter4j.properties。似乎非常irelavent的錯誤描述。 – Nativ

相關問題