為什麼 Facebook PHP SDK 的 getUser() 方法總是回傳 0?
嘗試使用 getUser() 檢索 Facebook 使用者 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中文網其他相關文章!