Facebook PHP SDK getUser() が常に 0 を返すのはなぜですか?
Facebook 統合 Web サイトのユーザー認証プロセスでは、これは、PHP SDK の getUser() 関数が正しいユーザー ID を返すために重要です。ただし、一部の開発者は、ユーザーがアプリを承認した後でも、この関数が一貫して 0 を返すという問題に遭遇しています。
問題の理解
関数は $_REQUEST スーパーグローバルをチェックします。 code パラメータは、認証後に Facebook によって設定されます。ただし、特定の環境では、$_REQUEST スーパーグローバルが $_GET、$_POST、$_COOKIE と適切にマージされない場合があります。
解決策
1 つの解決策は、手動で行うことです。変更された getCode() 関数に示すように、これらのスーパーグローバルを新しい変数にマージします。以下:
protected function getCode() { $server_info = array_merge($_GET, $_POST, $_COOKIE); if (isset($server_info['code'])) { // Rest of the function logic... } }
追加の考慮事項
getCode() の修正に加えて、Facebook 開発者ポータルで次の設定が正しく構成されていることを確認することが重要です。 :
これらの設定は、Facebook が承認されたアプリを識別し、ユーザーを正しいアプリにリダイレクトするのに役立ちます。後の場所authorization.
結論
$_REQUEST スーパーグローバルを正しくマージし、Facebook Developers Portal で正確な設定を確保することで、開発者は Facebook PHP SDK getUser() で発生する問題を解決できます。 0 を返します。これにより、Web サイトが Facebook とシームレスに統合され、カスタマイズされたエクスペリエンスのためのユーザー情報を取得できるようになります。
以上がFacebook PHP SDK の `getUser()` が常に 0 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。