java web網站集合成新浪微博登入

來源:互聯網
上載者:User

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

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

  修改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之後就可以根據執行個體代碼自己改了,我是擷取了使用者暱稱。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.