這一篇的重點有兩個,
(1)利用FB.login()來登入FB。
(2)使用FB.api('/me', function(response){}); 這個API來取得使用者的資訊。
有別於上一篇,使用getUserLoginStatus來取得Auth,這邊是用FB.login,取得的資訊應該是差不多的,這點,可以看FB.getLoginStatus 與 FB.login 的介紹。
程式碼應該也算是滿簡潔的,Html部分,放一個Button和Div來做為呼叫和顯示用,
Javascript的部分主要有二個:fblogin()以及fblogout()
不過在下面的範例,我沒有呼叫fblogout(),實際使用時,可以依照個人需求,加在登入->取得使用者資訊 之後自動登出。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://connect.facebook.net/zh_TW/all.js"></script>
<title>My Facebook Login Page</title>
<script type="text/javascript">
// 初始化 & 登入
function oplogin() {
FB.init({ appId: '你的app id', status: true, cookie: true, xfbml: true, channelUrl: 'http://www.你的Domain.com.tw/channel.html' }); //appid請去FB申請應用程式
fblogin();
}
function fblogin() {
FB.login(function (response) {
if (response.authResponse) {
//登入成功
FB.api('/me', function (response) {
var html = '<table>';
for (var key in response) {
html += ('<tr>' + '<th>' + key + '</th>' + '<td>' + response[key] + '</td>' + '</tr>');
}
document.getElementById('me').innerHTML = html + '</table>';
});
}
else {
//登入失敗
alert("登入失敗。");
}
});
}
//登出
function fblogout() {
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
FB.logout(function (response) {
// user is now logged out
document.getElementById('loginform').submit();
});
} else if (response.status === 'not_authorized') {
// the user is logged in to Facebook,
// but has not authenticated your app
FB.logout(function (response) {
// user is now logged out
alert("請重新登入!");
});
} else {
// the user isn't logged in to Facebook.
alert("請重新登入!");
}
});
}
</script>
</head>
<body>
<input type="button" id="btn2" onclick="javascript:oplogin();return false;" value="取得Facebook登入者資訊(PartII)" />
<div id="me">
</div>
</body>
</html>