首頁 > 後端開發 > php教程 > 為什麼 Facebook PHP SDK 的 `getUser()` 總是回傳 0?

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

Mary-Kate Olsen
發布: 2024-11-23 03:41:09
原創
848 人瀏覽過

Why Does Facebook PHP SDK's `getUser()` Always Return 0?

為什麼 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 開發者入口網站中正確配置以下設定也很重要:

  • 網站 URL:應用程式所在的URL託管
  • 網站網域:網站的網域,沒有子網域

這些設定可協助Facebook識別授權的應用程式並將使用者重新導向至正確的位置授權後。

結論

作者透過正確合併$_REQUEST 超全域變數並確保Facebook 開發者入口網站中的設定準確,開發者可以解決Facebook PHP SDK getUser() 返回0 的問題。這使得網站能夠與 Facebook 無縫整合並檢索用戶資訊以獲得客製化體驗。

以上是為什麼 Facebook PHP SDK 的 `getUser()` 總是回傳 0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板