簡體   English   中英

授權成功后,Facebook SDK getUser()方法返回0

[英]Facebook SDK getUser() method returns 0 after successful authorization

我最近更改了主機,發現Facebook登錄不再起作用。 它不會引發任何錯誤,但是根本無法正常工作。

我的代碼: 使用給定的示例進行了測試

我的工作流程:

  1. 用戶單擊登錄按鈕(getLoginUrl()方法)。
  2. 彈出Facebook授權窗口
  3. 用戶接受它,並使用?code = ..&state = ..將其重定向回到我的頁面。
  4. getUser()返回0,但應返回用戶ID

我嘗試使用Google搜索來尋找答案。 這是我嘗試的:

  1. 更改getCode()方法-> _REQUEST問題
  2. 開啟/關閉Cookie

我還能做些什么來解決此問題?

嘗試執行以下操作,在執行身份驗證的頁面下方添加JS代碼

<div id="fb-root"></div>

<script type="text/javascript">
    window.fbAsyncInit = function()
            {
                FB.init
                ({
                    appId   : 'your fb app id',
                    status  : true, // check login status
                    cookie  : true, // enable cookies to allow the server to access the session
                    xfbml   : true, // parse XFBML
                    oauth   : true
                });
                FB.Event.subscribe('auth.login', function()
                {
                    window.location.reload();
                });
            };

          (function()
          {
            var e = document.createElement('script');
            e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
            e.async = true;
            document.getElementById('fb-root').appendChild(e);
            }());
</script>

確保在HTML中添加一個id =“ fb-root”的div並關閉它,最佳實踐是如上所述將其添加到您的JS代碼上方。

然后使用PHP腳本生成登錄按鈕,並在頁面頂部添加以下代碼,以便在頁面重新加載時執行代碼

require_once 'src/facebook.php'; //include the facebook php sdk
$facebook = new Facebook(array(
    'appId'  => 'XXXXXXXXXXXXXX',    //app id
    'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // app secret
));

$user_id = $facebook->getUser();

暫無
暫無

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

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