資源簡介
linkin 微博 有測試過,新浪應該也沒問題,facebook沒有測試
代碼片段和文件信息
package?com.qingwen.app.login.controller;
import?java.io.IOException;
import?java.util.HashMap;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?net.sf.json.JSONobject;
import?org.apache.commons.lang.StringUtils;
import?org.springframework.stereotype.Controller;
import?org.springframework.web.bind.annotation.RequestMapping;
import?org.springframework.web.bind.annotation.ResponseBody;
import?com.qingwen.app.login.util.facebook.FacebookUtil;
import?com.qingwen.app.login.util.facebook.HttpClientUtil;
import?com.qingwen.common.util.baseAction;
import?com.qingwen.common.util.Common;
/**??
?*?http://blog.csdn.net/manongxiaomei/article/details/66475378?winzoom=1
?*?@ClassName:?TestController??
?*?@Description:?FaceBook第三方登錄???
?*?@date?Mar?15?2017?
?*?1登錄Facebook官網注冊一個開發者賬號:https://developers.facebook.com/
???2 創建一個應用(APPS)
???3在自己創建的應用中可以看到自己的應用編號和應用密鑰
???4在設置中可以創建一個回調,這個是回調地址,比如http://localhost:8080/facebookLogin
???5獲取code值:https://www.facebook.com/dialog/oauth?client_id=應用編號&redirect_uri=回調地址&code=,這時在地址欄上會出現一長串code
???6獲取access_token:https://graph.facebook.com/oauth/access_token?client_id=應用編號&redirect_uri=回調地址&client_secret=應用密鑰&code=剛才獲取到的code
???7獲取用戶資料:https://graph.facebook.com/me?access_token=剛才獲取到的access_token,得到用戶的id和name???
?*/
@Controller
@RequestMapping({“/facebook“})
public?class?FacebookController??extends?baseAction{
//表示取得的用戶信息的權限范圍??
private?static?String?scope?=?“user_about_meemailread_stream“;
?
//獲取臨時口令
private?static?String?code_url=“https://www.facebook.com/v2.8/dialog/oauth“;
//獲取用戶信息
private?static?String?user_url=“https://graph.facebook.com/me“;?
//驗證口令
private?static?String?verify_url=“https://graph.facebook.com/debug_token“;
//獲取應用口令
?
????//????//第一步訪問登錄頁面
@RequestMapping(value=“/index“)
public?String?toIndex(HttpServletRequest?request){
return?“facebooklogin“;
}
/**
?*?@throws?IOException?
?*?@title:?doLogin??
?*?@Description:?調用“登錄”對話框和設置重定向網址???
?*?@return?void?這個就是在應用中定義的跳轉網址,也就是重定向第二步之后回調的地址,并且帶上了code參數
?*?@date?Mar?17?2017?9:29:03?AM
?*?@throws
?*/
@RequestMapping(value=“/doLogin“)
@ResponseBody
public?object?doLogin(HttpServletRequest?requestHttpServletResponse?response)?throws?IOException{
String?code?=?request.getParameter(“code“);?//第二步獲取code,迷糊的同學往下看,方法上也有對應的步驟
if(StringUtils.isNotBlank(code)){
String?accessToken?=?FacebookUtil.getFacebookAccessToken(code);//第三步,用code(臨時口令)換取accessToken
JSONobject?userInfo=null;
if(StringUtils.isNotBlank(accessToken)){
userInfo?=?getUserInfo(accessToken);//第四步,用accessToken獲取用戶信息
}else{
System.out.println(“accessToken?is?null“);
}
System.out.println(userInfo);
return?userInfo;
//對用戶信息進行處理
}else{
return?“/code“;
}
}
/**
?*?@throws?ServletException?
?*?@throws?IOException?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????829??2017-06-16?16:31??test_login\.classpath
?????文件???????1335??2017-06-20?14:31??test_login\.project
?????文件????????522??2017-05-31?09:56??test_login\.settings\.jsdtscope
?????文件???????1009??2017-06-07?11:05??test_login\.settings\com.genuitec.eclipse.j2eedt.core.prefs
?????文件????????162??2017-06-20?14:33??test_login\.settings\org.eclipse.core.resources.prefs
?????文件????????598??2017-06-16?16:26??test_login\.settings\org.eclipse.jdt.core.prefs
?????文件????????106??2017-06-07?11:05??test_login\.settings\org.eclipse.ltk.core.refactoring.prefs
?????文件????????481??2017-06-07?11:05??test_login\.settings\org.eclipse.wst.common.component
?????文件????????414??2017-06-07?11:05??test_login\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件?????????49??2017-05-31?09:56??test_login\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件??????????6??2017-05-31?09:56??test_login\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件???????7096??2017-06-06?20:15??test_login\src\com\qingwen\app\login\controller\FacebookController.java
?????文件???????5071??2017-06-20?14:35??test_login\src\com\qingwen\app\login\controller\li
?????文件???????1610??2017-06-02?10:37??test_login\src\com\qingwen\app\login\controller\WbLoginController.java
?????文件???????4822??2017-06-20?14:39??test_login\src\com\qingwen\app\login\controller\WchatController.java
?????文件???????3006??2017-06-06?20:14??test_login\src\com\qingwen\app\login\util\facebook\FacebookUtil.java
?????文件???????4942??2017-06-07?11:24??test_login\src\com\qingwen\app\login\util\facebook\HttpClientUtil.java
?????文件????????573??2017-06-16?14:05??test_login\src\com\qingwen\app\login\util\wchat\BeanFactoryContext.java
?????文件???????3128??2017-06-16?10:36??test_login\src\com\qingwen\app\login\util\wchat\WeiChatAPI.java
?????文件???????1696??2017-06-20?14:39??test_login\src\com\qingwen\app\login\util\wchat\WeixinFinalValue.java
?????文件???????1241??2017-06-16?10:34??test_login\src\com\qingwen\app\login\util\wchat\WeixinKit.java
?????文件???????3417??2017-06-16?16:53??test_login\src\com\qingwen\app\login\util\wchat\WeixinUtil.java
?????文件???????3790??2017-06-02?09:48??test_login\src\com\qingwen\app\login\util\weibo\Account.java
?????文件??????14508??2017-06-02?09:50??test_login\src\com\qingwen\app\login\util\weibo\Comments.java
?????文件??????10773??2017-06-02?10:04??test_login\src\com\qingwen\app\login\util\weibo\Favorite.java
?????文件??????23931??2017-06-02?09:50??test_login\src\com\qingwen\app\login\util\weibo\Friendships.java
?????文件???????2669??2017-06-02?09:43??test_login\src\com\qingwen\app\login\util\weibo\http\AccessToken.java
?????文件???????4276??2017-06-01?20:41??test_login\src\com\qingwen\app\login\util\weibo\http\ba
?????文件??????28021??2017-06-01?20:41??test_login\src\com\qingwen\app\login\util\weibo\http\HTMLEntity.java
?????文件??????17020??2017-06-02?09:54??test_login\src\com\qingwen\app\login\util\weibo\http\HttpClient.java
............此處省略358個文件信息
評論
共有 條評論