4

我在 Struts1(Java framework) 中创建了我的项目。我正在使用我的自定义登录表单进行登录/身份验证。但我的老板希望用户使用 Twitter 帐户登录。就像在 Stackoverflow 中一样。

我通过从 json 请求调用 Facebook Graph Api 为 Facebook 进行的登录类型相同。但我对 twitter 登录感到困惑。即使我从这里阅读了 twitter 文档。还是很迷茫。请帮助我。

4

2 回答 2

4

你可以查看我的代码 但是你需要从 twitter 获取 ConsumerKey ,ConsumerSectret 和 accessToken

import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;
import twitter4j.auth.RequestToken;

public class TwitterUtils {

public static void main(String[] args) {
    try {

        final String consumerKey = "**********";
        final String consumerSecret = "**********";
        Twitter twitter = new TwitterFactory().getInstance();
        twitter.setOAuthConsumer(consumerKey, consumerSecret);
        RequestToken requestToken = twitter.getOAuthRequestToken();

        String token = requestToken.getToken();
        String tokenSecret = requestToken.getTokenSecret();
        System.out.println("My token :: " + token);
        System.out.println("My token Secret :: " + tokenSecret);

        //AccessToken a = new AccessToken(token, tokenSecret);
        //twitter.setOAuthAccessToken(a);
        twitter.updateStatus("If you're reading this on Twitter, it worked!");

    } catch (TwitterException e) {
        e.printStackTrace();
    }
}//main
}/
于 2013-06-14T08:02:25.557 回答
0

它需要在 AsyncTask 上下文中

final String consumerKey = "**********";
    final String consumerSecret = "*********";


    new AsyncTask<Void, Void, RequestToken>(){
        @Override
        protected RequestToken doInBackground(Void... voids) {
            try {
                Twitter twitter = new TwitterFactory().getInstance();
                twitter.setOAuthConsumer(consumerKey, consumerSecret);

                RequestToken requestToken = twitter.getOAuthRequestToken();
                return requestToken;
            } catch (TwitterException e) {
                e.printStackTrace();
                return null;
            }
        }

        @Override
        protected void onPostExecute(RequestToken requestToken) {
            super.onPostExecute(requestToken);
            if(requestToken == null)
                return;
            String token = requestToken.getToken();
            String tokenSecret = requestToken.getTokenSecret();
            Log.i("INFO", "My token :: " + token);
            Log.i("INFO", "My token Secret :: " + tokenSecret);
        }
    }.execute();
于 2014-03-25T19:04:24.547 回答