网站如何实现用FaceBook登录
1:登陆https://developers.facebook.com/quickstarts/757098871011921/?platform=web注册一个开发者账号
2:创建完成以后,设置自己的app
3:拿到有用的数据 例如:
App ID:1503551219909972
App Secret:65077e3696487b3494450bc2b8253e6f
Site URL : http://53.164.51.14:8080/
后面的url必须在这个域名或其子域
然后可以开始以下步骤:(以下是分三步实现如何获取facebook账户信息,最后呈现的是json格式的)
Step1: 使用这个步骤可以直接完成Facebook的第三方登陆
<a href="https://www.facebook.com/dialog/oauth?client_id=1503551219909972&redirect_uri=http://54.164.51.14:8080/examples/hello.html&code=acgon">
<img src="https://www.gotobus.com/images/facebook-login.gif" alt=""></a>
href中get方法有四个参数:
client_id : YOUR APP ID
redirect_uri : 登陆后让使用者会返回到你的网站地址,并且附带一个code参数
code : acgon (这是个固定值)
例如:
http://54.164.51.14:8080/examples/hello.html?code=AQDWZPlnBuXoHT2G96pGwfXSqxrlY7mLUmmBGe4A6Uzjbyb_Mj3iF7rqJaSmwDuLmtkaMOU72NeoYhrOlZjZoBBq7Q5D7xitwZ16L6EU9_7OO5JhtyQmTcHVlpoGBPDWYUibzB65gK4dkArUBTqdYzfcpAu-jP4aehRsd3y5raAMYzs8nrPez8ol97D5IW2Jy80Epnj3tFDJovtFpWXmPKXZ40bNqpP_e_I3fzChe4v1ZX6uWX_56GmEjUiLfXc8Xh7mDnTFucRgZJXT4B_TuQ-q310uAEzBLCTP5dpkiqjVKnc6Az8W0rAZXbHz3a8SbbfJef9bS7mYy1-WyOnznvfB#_=_
Step2:以下两个步骤可以获取登陆者在你Facebook的个人信息
利用facebook 传回来的code参数向facebook取得access_token
$.ajax({
type: "get",
url : "https://graph.facebook.com/oauth/access_token",
dataType:'text',
data: {
client_id: '1503551219909972',
redirect_uri: 'http://54.164.51.14:8080/examples/hello.html',
client_secret : '65077e3696487b3494450bc2b8253e6f',
code : code
},
success: function(data){
var token = data.split("&")[0].split("=")[1];
},
});
例如:access_token=CAAVXeMxdRVQBAInNR89qiAc2dOpCzVj31GMlhXYm3Q9hkYLSSF2uT2GTlqGUqpsUdZApzQwOyaINSx2MXB8g1nRk7yRklZBG0bTWXfUuQGz9JvENE6zIHGGZB484fZCUrgBIZAB62vm7w8QunKlQUBXA0ysxuJEaKEmEUvtikFKk5KE8hKVaX0nZAi2b1ONDNZBGZAbiZBjgQzGGzgrLupF8d&expires=5110579
Ajax里面有四个参数:
client_id: YOUR APP ID,
redirect_uri:
一定要和Step1中的redirect_uri一样,
client_secret : 申请的APP SECRET,
code : 前面请求拿到的CODE
Step3: 利用access_token就可以取的使用者的资料
$.ajax({
type: "get",
url : "https://graph.facebook.com/me",
dataType:'json',
data: {
access_token : token,
},
success: function(json){
},
});