获取FaceBook上用户的信息
废话说多了没意思,直接一个代码就够了:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>获取用户信息</title>
<script type="text/javascript" src="lib/jquery/jquery-1.3.2.min.js">
</script>
<style>
#get {
background: green;
width: 100px;
height: 20px;
margin: 0 0 0 0;
color: white;
}
</style>
</head>
<body>
<input id='get' value='GetUsersInform' type='button'/>
<div id="fb-root">
</div>
<script>
var facebookId;
var facebookName;
var facebookProfileImg;
var facebookBooks;
var facebookMovies;
var facebookMusic;
var facebookLocations;
var friendFbIds = '';
var facebookEmail;
window.fbAsyncInit = function(){
FB.init({
appId: '140497919399626'
});
var get = $('#get');
get.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();
}
}
//用来循环获取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) {
alert('Sorry, please try again!!');
}
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){
//注意这里用到了Object.size方法
for (var i = 0; i < Object.size(data); i++) {
friendFbIds = friendFbIds + "'" + data[i].uid2 + "'";
if (i != Object.size(data) - 1) {
friendFbIds += ' ';
}
}
//alert(friendFbIds);
var friendId = $("#friendId");
friendId.html('The Id of your friends are:' + friendFbIds);
var facebook_name = $("#facebookName");
facebook_name.html('Your FaceBook name is:' + facebookName);
$("#facebookEmail").html('Your FaceBook Email is:' + facebookEmail);
$("#facebookLocations").html('Your FacebookLocations is:' + facebookLocations);
/*alert("facebookName" + facebookName);
alert("facebookEmail" + facebookEmail);
alert("facebookProfileImg" + user.pic_square);
alert("facebookMovies" + user.movies);
alert("facebookMusic" + user.music);
alert("facebookBooks" + user.books);
alert("facebookLocations" + user.current_location);*/
});
}
});
}
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk';
if (d.getElementById(id)) {
return;
}
js = d.createElement('script');
js.id = id;
js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
<p id='friendId'></p>
<p id='facebookName'></p>
<p id='facebookEmail'></p>
</body>
</html>
浙公网安备 33010602011771号