程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> java web網站集成新浪微博登錄

java web網站集成新浪微博登錄

編輯:更多關於編程

       給網站添加第三方登錄的功能,研究了下新浪微博登錄的接口,本來想使用它提供的那種js代碼庫的方式,結果始終搞不定,由於不精通js只能夠放棄。下載了個java的SDK包:weibo4j-oauth2-beta2.1.1,研究了下,雖然出了一些問題,但還是很快集成到網站裡面了。

      首先,把一些必要的包和java類負責到自己的工程文件:

    java web網站集成新浪微博登錄 三聯

      修改config文件裡面的client_ID,client_SERCRET,redirect_URI。

      自己在登錄頁面寫一個微博登錄按鈕,超鏈接到名字為OAuth4Code的servlet。

      import weibo4j.Oauth;

      import weibo4j.model.WeiboException;

      import weibo4j.util.BareBonesBrowserLaunch;

      public class OAuth4Code extends HttpServlet {

      public void doGet(HttpServletRequest request, HttpServletResponse response)

      throws ServletException, IOException{

      Oauth oauth = new Oauth();

      try{

      BareBonesBrowserLaunch.openURL(oauth.authorize("code",""));

      }catch(WeiboException e){

      System.out.println(e);

      }

      }

      登錄成功之後會跳轉到config文件裡面的redirect_URI。

      我重定向的也是一個servlet,核心代碼如下:

      String code = request.getParameter("code");

      try{

      Oauth oauth = new Oauth();

      //

      AccessToken token = oauth.getAccessTokenByCode(code);

      String token = oauth.getAccessTokenByCode(code).toString();

      System.out.println(token);

      //

      String accessToken = token.getAccessToken();

      // String uid = token.getUid();

      // System.out.println(accessToken);

      // System.out.println(uid);

      String str[] = token.split(","); //截取字符串,獲得sccessToken和uid

      String accessToken= str[0].split("=")[1];

      System.out.println(accessToken);

      String str1[] = str[3].split("]");

      String uid = str1[0].split("=")[1];

      System.out.println(uid);

      session.setAttribute("accessToken", accessToken);

      session.setAttribute("uid", uid);

      Users um = new Users();

      um.client.setToken(accessToken);

      User user = um.showUserById(uid);

      String screenName = user.getScreenName(); //獲得到用戶昵稱

      session.setAttribute("name", screenName);

      }catch(WeiboException e){

      System.out.println(e);

      }

      本來想通過AccessToken 類來獲取uid和token,結果會出現code錯誤之類的現象,只能辛苦的自己分割了。成功獲取到uid和token之後就可以根據實例代碼自己改了,我是獲取了用戶昵稱。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved