簡體   English   中英

Fb.api未定義的用戶

[英]Fb.api undefined user

我有以下問題:

用戶登錄Facebook后,如果我運行以下代碼:

FB.api('/me', function(user) {
      alert(user.name);
});

它彈出一個帶有“ Udefined”字樣的警報。

但是,如果我以以下方式更改代碼:

FB.api( /[MY_REAL_FACEBOOK_ID], function(user) {
      alert(user.name);
});

它以正確的方式響應。

怎么可能? 為什么“ /我”永遠不起作用?

使用下面的代碼來克服未定義的問題:

window.fbAsyncInit = function() {
    // init the FB JS SDK
    FB.init({
      appId      : your_app_id,                        
      status     : true,                                 
      xfbml      : true                                 
    });

    // Additional initialization code such as adding Event Listeners goes here

    FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            alert("connected");
            connecter=true;
            FB.api('/me', function(user) {
                alert(user.name);
                alert(user.first_name);
                alert(user.last_name);
                alert(user.email);
            });
        } 
    });

我認為您可能是在應用而非用戶的上下文中查詢“ / me”。 該文檔沒有盡可能明確,但是我遇到了同樣的問題。

您可以使用FB.getLoginStatus嗎?

設置FB.init后,將調用FB.getLoginStatus,類似於下面的內容。 可能會有更好的方法來執行此操作,但這對我有用。

希望這會有所幫助:

 FB.getLoginStatus(function (response) {

            if (response.session) {
                // logged in and connected user, someone you know

                graphUrl = "https://graph.facebook.com/me?access_token=" +         response.session.access_token + "&callback=displayUser"
                var script = document.createElement("script");
                script.src = graphUrl;
                document.body.appendChild(script);


            } else {
                // no user session available, someone you dont know

            }});


 function displayUser(user) {

        alert(user.name);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM