為什麼 Facebook PHP SDK getUser() 總是回傳 0?
在 Facebook 整合網站驗證使用者身分的過程中,這是對於 PHP SDK 的 getUser() 函數傳回正確的使用者 ID 至關重要。但是,一些開發人員遇到這樣的問題:即使在使用者授權應用程式之後,此函數始終會傳回 0。
理解問題
函數檢查 $_REQUEST 超全域變數code參數,由Facebook授權後設定。但是,在某些環境中,$_REQUEST 超全域變數可能無法與 $_GET、$_POST 和 $_COOKIE 正確合併。
解決方案
一個解決方案是手動將這些超全域變數合併到一個新變數中,如修改後的getCode() 函數所示下面:
protected function getCode() { $server_info = array_merge($_GET, $_POST, $_COOKIE); if (isset($server_info['code'])) { // Rest of the function logic... } }
其他注意事項
除了getCode() 修復之外,確保在 Facebook 開發者入口網站中正確配置以下設定也很重要:
這些設定可協助Facebook識別授權的應用程式並將使用者重新導向至正確的位置授權後。
結論
作者透過正確合併$_REQUEST 超全域變數並確保Facebook 開發者入口網站中的設定準確,開發者可以解決Facebook PHP SDK getUser() 返回0 的問題。這使得網站能夠與 Facebook 無縫整合並檢索用戶資訊以獲得客製化體驗。
以上是為什麼 Facebook PHP SDK 的 `getUser()` 總是回傳 0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!