一些 Facebook Javascript API 簡單與常用的功能
開發前需先至 Facebook Develope 申請並取得APP ID
並參考本頁面 Login without Javascript SDK 架設基本環境
//facebook api 初始化設定
window.fbAsyncInit = function () {
FB.init({
appId: 'your facebook app ip', //facebook app id
channelUrl: ' localhots/channel.html', // Channel.html 位置
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
xfbml: true // parse XFBML
});
};
//載入 facebook jssdk
(function (d) {
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) { return; }
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
} (document));
//facebook javascript 登入
function login() {
FB.login(function (response) {
if (response.authResponse) {
FB.api('/me', 'GET', function (response) {
console.log(response.name); //取得使用者名稱
consoel.log(response.email); //取得使用者 Email
console.log(response.id); //取得使用者 facebook id
});
} else {
alert('登入失敗');
}
}, { scope: "email,user_groups,publish_stream,publish_checkins" });
//scope為要求取得使用者的 permission
//EX: email:取得使用者 Email
// user_groups: 使用者社團資料
// user_about_me: 使用者關於我
// user_photos: 使用者相片
// publish_stream: 使用者發文權限
//more: http://developers.facebook.com/docs/reference/login/#permissions
}
//使用者登出
function logout() {
FB.logout(function (response) {
// user is now logged out
});
}
//取得目前登入狀態
function getLoginStatus() {
FB.getLoginStatus(function (response) {
console.log('logout');
console.log(response);
});
}
//取得使用者資料
function getUserData() {
//使用者資料
FB.api('/me','GET', function (response) {
console.log('me:');
console.log(response);
console.log('Hello ' + response.name);
});
//使用者縮圖
FB.api('/me/picture', 'GET', function (response) {
if (response) {
console.log('picture:');
console.log(response);
} else {
alert("Error");
}
})
//有使用者在內的照片
FB.api('/me/photos', 'GET', function (response) {
if (response) {
console.log('photos:');
console.log(response);
} else {
alert("Error");
}
})
//使用者好友資料
FB.api('/me/friends','GET',function (response) {
if (response) {
console.log('friends:');
console.log(response);
} else {
alert("Error");
}
});
//社團資料 (需開啟 user_groups permission)
FB.api('/me/groups', 'GET', function (response) {
if (response) {
console.log('groups:');
console.log(response);
} else {
alert("Error");
}
});
}
//使用者發文(需開啟 publish_stream permission)
function publish(){
FB.api('/me/feed', 'post', { message: 'facebook api' }, function (response) {
//{message:'發文內容'}
if (!response || response.error) {
alert('Error');
} else {
alert('Post ID: ' + response.id);
}
});
}
//使用者打卡(需開啟 publish_checkins permission)
function Checkins() {
var data = {
"place" : "117464364938130", //打卡位置ID
"coordinates" : JSON.stringify({ //打卡位置至經緯度
'latitude' : 40.7798027,
'longitude' : -73.9481371,
})
};
FB.api('me/checkins',data,'POST', function (response) {
if (response) {
console.log('checkins success');
console.log(response);
} else {
alert('Error');
}
})
}