首頁 >後端開發 >php教程 >為什麼 Facebook 的 PHP SDK `getUser()` 方法回傳 0,我該如何修復它?

為什麼 Facebook 的 PHP SDK `getUser()` 方法回傳 0,我該如何修復它?

Barbara Streisand
Barbara Streisand原創
2024-11-22 05:33:14505瀏覽

Why Does Facebook's PHP SDK `getUser()` Method Return 0, and How Can I Fix It?

為什麼 Facebook PHP SDK 的 getUser() 方法總是回傳 0?

嘗試使用 getUser() 檢索 Fa​​cebook 使用者 ID 時使用 PHP SDK 的方法,許多開發人員遇到不斷接收值 0 的問題。儘管透過登入按鈕正確授權應用程序,但仍會出現此問題功能。

此問題的一個可能原因在於框架對 $_REQUEST 變數的依賴。但是,環境可能不會總是自動將 $_REQUEST 與 $_GET、$_POST 和 $_COOKIE 變數合併。這種差異可能會阻礙 getCode() 函數檢索授權碼的能力。

解決方案:

要解決此問題,請修改 base_facebook 中的 getCode() 函數。 php 如下:

protected function getCode() {
    $server_info = array_merge($_GET, $_POST, $_COOKIE);

    if (isset($server_info['code'])) {
        if ($this->state !== null && isset($server_info['state']) && $this->state === $server_info['state']) {
            $this->state = null;
            $this->clearPersistentData('state');
            return $server_info['code'];
        } else {
            self::errorLog('CSRF state token does not match one provided.');
            return false;
        }
    }

    return false;
}

此修改可確保 getCode() 函數正確檢查中的授權程式碼所有可能的請求變數。實施此變更後,getUser() 方法應正確識別登入的 Facebook 使用者。

以上是為什麼 Facebook 的 PHP SDK `getUser()` 方法回傳 0,我該如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn