简体   繁体   English

如何使用twitter为我的jsp / java web项目实现登录

[英]how can i implement login with twitter for my jsp/java web project

I have created my project in Struts1(Java framework) . 我在Struts1(Java框架)中创建了我的项目。 I am using my custom login form for login/authentication purpose. 我使用自定义登录表单进行登录/身份验证。 But my Boss wants the user to login with there Twitter Account. 但我的Boss希望用户使用Twitter帐户登录。 just like in Stackoverflow. 就像在Stackoverflow中一样。

Same type of login i did for Facebook by calling Facebook Graph Api From json request. 我通过调用Facebook Graph Api从json请求为Facebook做的相同类型的登录。 But i am confused for twitter login. 但我对Twitter登录感到困惑。 Even i read the twitter docs from here . 即使我从这里阅读推文文档。 Still am confused. 还是很困惑。 Please help me for this. 请帮帮我。

You can check my code But you need to obtain ConsumerKey ,ConsumerSectret and accessToken from twitter 您可以检查我的代码但是您需要从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
}/

It needs to be in AsyncTask context 它需要在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();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM