有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我已经在Struts1(Java框架)中创建了我的项目。我使用自定义登录表单进行登录/身份验证。但是我的老板想让用户使用Twitter账号登录。就像在Stackoverflow中一样

我通过json请求调用Facebook Graph Api为Facebook进行了相同类型的登录。但我对twitter登录感到困惑。甚至我也读了推特上的文档。我还是很困惑。请帮我做这个


共 (2) 个答案

  1. # 1 楼答案

    它需要在异步任务上下文中

    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();
    
  2. # 2 楼答案

    你可以查看我的代码,但你需要从twitter上获得ConsumerKey、ConsumerSecret和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
    }/