标签:
在使用APP之前需要先生成Facebook APP ID 这不必多说。
生成Facebook APP ID之后 在javascript中 初始化Facebook信息
而且我定义了一些我需要获取获取数据的全局变量
<script language="javascript" type="text/javascript">
//这是我们要获取的信息变量
var facebookId;
var facebookName;
var facebookProfileImg;
var facebookBooks;
var facebookMovies;
var facebookMusic;
var facebookLocations;
var friendFbIds = ‘‘;
var facebookEmail;
FB.init({
appId: ‘138343092941586‘, //这里设置你申请的APP ID
status: true,
cookie: true,
xfbml: true,
oauth: true
});
</script>
复制代码
初始化完成之后,可以通过某一个事件来触发获取Facebook信息的功能。(我使用了id的点击事件)
<script language="javascript" type="text/javascript">
$(‘#invite‘)。click(function(){
FB.getLoginStatus(checkResponse);
});
//checkResponse方法是用来检测当前用户是否登陆的。
function checkResponse(response) {
if (!response.authResponse) {
//scope是获取权限的意思,你可以获取其他的例如:offline_access, publish_stream等权限
FB.login(handleSessionResponse,{ scope:‘email‘});
} else {
//这个方法就是获取Facebook用户信息的方法
retrieveProfiles();
}
}
//次方法是用来处理Facebook登陆的回话相应。
function handleSessionResponse(response) {
if (!response.authResponse) {
return;
} else {
//这个方法就是获取Facebook用户信息的方法
retrieveProfiles();
}
}
</script>
复制代码
下面这里才是重点,根据上面获取的Facebook信息,通过FacebookAPI查询Facebook的数据库即可得到相关的信息
<script language="javascript" type="text/javascript">
//用来循环获取Facebook 好友ID
Object.size = function(obj) {
var size = 0;
for (var key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
}
function retrieveProfiles() {
// 通过Facebook API 查询用户信息
FB.api({ method: ‘fql.query‘, query: ‘SELECT uid,email, name, pic_square, books, movies, music, current_location FROM user WHERE uid=me()‘ }, function(response) {
// fetch the status from response
var user = response[0];
if (user == undefined) {
$(‘span.loading‘)。replaceWith(‘<span>Sorry, please try again.</span>‘);
} else {
facebookId = user.uid;
facebookName = user.name;
facebookProfileImg = user.pic_square;
facebookMovies = user.movies;
facebookMusic = user.music;
facebookBooks = user.books;
facebookEmail = user.email;
facebookLocations = user.current_location;
//获取当前用户的Facebook好友
FB.api({ method: ‘fql.query‘, query: ‘SELECT uid2 FROM friend WHERE uid1 = ‘ + facebookId }, function(data) {
console.log(data);
//注意这里用到了Object.size方法
for (var i = 0; i < Object.size(data); i++) {
friendFbIds = friendFbIds + "‘" + data[i].uid2 + "‘";
if (i != Object.size(data) - 1) {
friendFbIds += ‘,‘;武汉仁济精神病治疗
}
}
console.log(friendFbIds);
console.log("facebookName"+facebookName);
console.log("facebookEmail"+facebookEmail);
console.log("facebookProfileImg"+user.pic_square);
console.log("facebookMovies"+user.movies);
console.log("facebookMusic"+user.music);
console.log("facebookBooks"+user.books);
console.log("facebookLocations"+user.current_location);
});
}
});
}
</script>
复制代码http://www.dztxn.com/space/?342/log/829
通过Javascript Facebook API获取Facebook用户信息,以及当前用户的好
标签:
原文地址:http://my.oschina.net/u/2297790/blog/382401