如何使用cake php获取fbml中的电子邮件地址和用户ID

时间:2010-11-19 10:55:00

标签: php cakephp facebook

我使用了一个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。

请指导我。

2 个答案:

答案 0 :(得分:1)

我认为你不能通过fbml收到电子邮件,因为有了它你就可以展示它并且毫无意义。

实际上你需要有一个FB API的PHP部分,你可以帮助你完成这项任务。

虽然你可以使用这个非常好的plugin for CakePHP。它很容易让它工作,你可以肯定地收到用户的电子邮件。

答案 1 :(得分:0)

我从未使用过FB api,但如果他们发出电子邮件,我会感到惊讶。哦......这是Facebook。我吃了我的话。