代码之家  ›  专栏  ›  技术社区  ›  d-man

使用twitter4j的Android Twitter xAuth示例

  •  6
  • d-man  · 技术社区  · 14 年前

    xAuth Authentication for Twitter Share in Android?

    System.setProperty("twitter4j.oauth.consumerKey", "your token");
    System.setProperty("twitter4j.oauth.consumerSecret", "your token secret");
    
    Twitter twitter = new TwitterFactory().getInstance(login, password);
    
    AccessToken accessToken = twitter.getOAuthAccessToken();
    //Then you must save your Token and Token secret from AccesToken
    
    if (mAccessToken != null) {
        if (mAccessToken.getToken() != null && mAccessToken.getTokenSecret() != null) {
            saveAccessToken(mAccessToken.getToken(), mAccessToken.getTokenSecret());
        }
    }
    

    Exception Msg: java.lang.IllegalStateException: OAuth consumer key/secret combination not supplied

    在下一行

    AccessToken accessToken = twitter.getOAuthAccessToken();
    

    我做了一些改变,比如

    Twitter twitter = new TwitterFactory().getInstance("login", "pass");
                twitter.setOAuthConsumer(getString(R.string.twtAPIKey), getString(R.string.twtSecret));
                AccessToken mAccessToken = twitter.getOAuthAccessToken();
    

    我又一次得到了例外 Exception Msg: java.lang.IllegalStateException: Basic authenticated instance.

    有xAuth的工作实例吗?

    2 回复  |  直到 7 年前
        1
  •  5
  •   Stephan    13 年前

    我曾经用过

    
    ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
    
         configurationBuilder.setOAuthConsumerKey(Consumer__Key);
         configurationBuilder.setOAuthConsumerSecret(Consumer_Secret);
         Configuration configuration = configurationBuilder.build();
    
         Twitter twitter = new TwitterFactory(configuration).getInstance("username","password"); 
    
         AccessToken token = twitter.getOAuthAccessToken();
         System.out.println("Access Token " +token );
    
         String name = token.getScreenName();
         System.out.println("Screen Name" +name);
    
         PrintWriter out= response.getWriter();
         System.out.println(token);
    

    并使用xauth使用Android应用程序成功登录Twitter

        2
  •  2
  •   Randy Sugianto 'Yuku'    13 年前

    twitter4j的2.2.2版只是一个小小的改变。这样做有效:

    Configuration configuration = new ConfigurationBuilder()
    .setOAuthConsumerKey("your_customer_key")
    .setOAuthConsumerSecret("your_customer_secret")
    .build();
    
    Twitter twitter = new TwitterFactory(configuration).getInstance(new BasicAuthorization(username, password)); // yes, use "BasicAuthorization" although that seems strange
    
    AccessToken token = twitter.getOAuthAccessToken();
    Log.d(TAG, "Access token: " + token.getToken());
    Log.d(TAG, "Access token secret: " + token.getTokenSecret());
    

    记住,您的twitter客户端应用程序需要 authorized to use xAuth 在这起作用之前。

    推荐文章