[WebService] Facebook SDK 學習筆記
整理筆記時使用 Facebook sdk v2.9
前端處理
初始化 Facebook SDK
記得在 <app_id>
的地方代入自己的 appId
window.fbAsyncInit = function () {
FB.init({
appId: '<app_id>',
cookie: true,
xfbml: true,
version: 'v2.9',
});
FB.AppEvents.logPageView();
};
(function (d, s, id) {
var js,
fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement(s);
js.id = id;
js.src = '//connect.facebook.net/zh_TW/sdk.js';
fjs.parentNode.insertBefore(js, fjs);
})(document, 'script', 'facebook-jssdk');
確認使用者 FB 登入狀態
// Get FB Login Status
FB.getLoginStatus((response) => {
console.log('res', response); // 這裡可以得到 fb 回傳的結果
});
response
中會包含:
{
"status": "connected",
"authResponse": {
"accessToken": "...",
"expiresIn": "...",
"signedRequest": "...",
"userID": "..."
}
}
其中比較重要的 status
包含幾個狀態:
connected
: 使用者已登入 FB,且授權你的 app 使用。not_authorized
: 使用者已登入 FB,但未授權你的 app 使用。unknown
: 使用者沒有登入 FB,或已從你的 app 中登出。
如果你拿不到 authResponse 有可能是使用者沒有登入 FB,或者他尚未授權你的 app 使用。