2012-04-04 36 views
5

Tôi có thể đăng nhập vào twitter bằng cách sử dụng twitter4j và nhận thông tin về người dùng đã đăng nhập nhưng tôi không thể đăng tweet từ ứng dụng của mình. Tôi đang sử dụng ứng dụng web java để đăng tweet. xem mã bên dưới mà tôi sử dụng.cách đăng tweet bằng twitter4j trong java?

String ACCESS_TOKEN = "ttttttttt"; 
    String ACCESS_TOKEN_SECRET = "gggggggggggggg"; 
    String CONSUMER_KEY = "gggggggggggg"; 
    String CONSUMER_SECRET = "hhhhhhhhhhhhh"; 
    String tweet = ""; 
    if (request.getParameter("tweet") != null) { 
     tweet = request.getParameter("tweet"); 
    } 
    AccessToken accessToken = new AccessToken(ACCESS_TOKEN, ACCESS_TOKEN_SECRET); 
    OAuthAuthorization authorization = new OAuthAuthorization(ConfigurationContext.getInstance(), CONSUMER_KEY, CONSUMER_SECRET, accessToken); 
    Twitter twitter = new TwitterFactory().getInstance(authorization); 
    try { 
     //twitter.updateStatus("Hello World!"); 
     twitter.updateStatus(tweet); 
    } catch (TwitterException e) { 
     System.err.println("Error occurred while updating the status!"); 
    } 

tôi có được ngoại lệ follwing:

TwitterException {exceptionCode = [fa54b184-3bf2623f], statusCode = 401, retryAfter = 0, rateLimitStatus = null, phiên bản 2.1.5 =-SNAPSHOT (xây dựng: d372a51b9b419cbd73d416474f4a855f3e889507)}

Vui lòng trợ giúp.

Trả lời

7
  1. Đến ứng dụng đã tạo của bạn (https://dev.twitter.com)

  2. Kiểm tra cài đặt ứng dụng của bạn (> Loại Application)

  3. 'Loại Ứng dụng' cần phải là một trong các tin nhắn Đọc, Viết và Truy cập trực tiếp. Nếu không, bạn có thể dễ dàng thực hiện cập nhật.

(Tôi đã thử nghiệm mã của bạn trong môi trường xử lý và nó đang làm việc)

1

statusCode 401 có nghĩa là bạn đang not authorized

Kiểm tra xem thông tin của bạn là hợp lệ. Nếu có, có thể ứng dụng của bạn chưa được người dùng xác thực. Xem các ví dụ trên twitter4j site (điểm 7)

4

Trước hết, tạo lại mã thông báo/bí mật và khóa/bí mật của người tiêu dùng. Sau đó thử điều này.

String consumerKey = "yourconsumerKey "; 
     String consumerSecret = "yourconsumerSecret"; 
     String accessToken = "yourAccessToken"; 
     String accessSecret = "yourAccessSecret"; 

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

     try 
     { 
      TwitterFactory factory = new TwitterFactory(cb.build()); 
      Twitter twitter = factory.getInstance(); 

      System.out.println(twitter.getScreenName()); 
      Status status = twitter.updateStatus(latestStatus); 
      System.out.println("Successfully updated the status to [" + status.getText() + "]."); 
      }catch (TwitterException te) { 
       te.printStackTrace(); 
       System.exit(-1); 
      } 
Các vấn đề liên quan