我使用了一个javascript函数,该函数在登录facebook connect后被调用。
var FB_API_KEY = "api key";
var FB_CHANNEL_PATH = "xd_receiver.htm";
FB.init(FB_API_KEY, FB_CHANNEL_PATH, {permsToRequestOnConnect : "email"});
FB.Connect.ifUserConnected(FB_ConnectPostAuthorization);
function FB_ConnectPostAuthorization() {
var user_box = document.getElementById("user_id");
user_box.innerHTML =
"<span>"
+"<fb:profile-pic uid='loggedinuser' facebook-logo='true'></fb:profile-pic>"
+"Welcome , <fb:name uid ='loggedinuser' useyou='false'></fb:name>"
+"You are signed in with your facebook account"
+"</span>";
FB.XFBML.Host.parseDomTree();
FB_RequireFeatures(["Api"], function(){
var api = FB.Facebook.apiClient;
var fb_uid = api.get_session().uid;
$.post('/users/fb_login/', {'fb_uid': fb_uid}, function(response) {
if (response != "yes") {
api.users_hasAppPermission("email", function(result) {
if (!result) {
FB.Connect.showPermissionDialog("email", redirect_to_done_page);
} else {
redirect_to_done_page()
}
})
} else {
redirect_to_done_page()
}
});
});
}
function redirect_to_done_page() {
window.location = "xyz";
}
我添加了一个调用上述功能的facebook连接按钮。
我只能通过fbml标签获取用户名和个人资料照片。如何获取用户电子邮件和用户ID。
请指导我。
答案 0 :(得分:1)
我认为你不能通过fbml收到电子邮件,因为有了它你就可以展示它并且毫无意义。
实际上你需要有一个FB API的PHP部分,你可以帮助你完成这项任务。
虽然你可以使用这个非常好的plugin for CakePHP。它很容易让它工作,你可以肯定地收到用户的电子邮件。
答案 1 :(得分:0)
我从未使用过FB api,但如果他们发出电子邮件,我会感到惊讶。哦......这是Facebook。我吃了我的话。