web-dev-qa-db-ja.com

Facebookを使用したログインでのエラーPHP SDKで厳密モードが有効になっている

Facebookから、有効なOAuthリダイレクトURI)にリストされていないURIからの呼び出しが無効になるという通知を受け取りました2018年3月そして、リダイレクトURIに対して厳密モードを有効にする必要があると思います。これに関するリンクは ここ

私は彼らのPHP SDKを厳密モードで無効にして1年間問題なく使用していますが、厳密モードを有効にしてそこにリダイレクトURLを配置すると: https:/ /nino-dot-dynamic-osprey-93721.appspot.com/admin/fb-callback_admin.php -Facebookでログインしようとするたびに、以下のようなエラーが返されます。

Graph returned an error: Can't Load URL: The domain of this URL isn't included in the app's domains. To be able to load this URL, add all domains and subdomains of your app to the App Domains field in your app settings.

FBのデフォルトのPHP SDKログインコード( https://developers.facebook.com/docs/php/howto/example_facebook_login )を使用しているだけであることに注意してください。 login.phpとfb-callback.phpのリンクがあり、カスタムOAuthワークフローを使用していません。

生成されたリダイレクトURLにcodeおよびstateパラメーターが含まれていることに気付きました。

site.com/admin/fb-callback_admin.php?code=somecode&state=somestate

https://nino-dot-dynamic-osprey-93721.appspot.com/admin/fb-callback_admin.php)のリダイレクトURLのみを想定しているため、これがエラーが発生する理由だと思います。 末尾のパラメータなし。

以下のコードを介したリダイレクトURLの応答を前提として、厳密モードを有効にするというこの問題を回避することについてどう思いますか。

$helper = $fb->getRedirectLoginHelper();
$permissions = ['email']; // Optional permissions
$loginUrl = $helper->getLoginUrl('https://nino-dot-dynamic-osprey-93721.appspot.com/admin/fb-callback_admin.php', $permissions);
echo htmlspecialchars($loginUrl);

fBのPHPデフォルトではSDKから生成されますか?

9
pmichael16

変化する

$accessToken = $helper->getAccessToken()   

$accessToken = $helper->getAccessToken('http://www.example.com/admin/fb-callback_admin.php');

私は同じ問題を抱えていて、このスレッドでこの答えを見つけました。これは私にとって問題を解決しているようです:

グラフがエラーを返しました:URLを読み込めません:このURLのドメインはアプリのドメインに含まれていません

なぜこれが機能するのかはわかりませんが、機能してよかったです。

26
Simon Lenaerts

私は同じ問題に直面していました、実際、これはFacebookのグラフSDKから来ています。

私はこの情報を ここ から入手しました

また、私にとってこのエラーを修正したように思われる迅速で汚い変更は、FacebookRedirectLoginHelperで削除するパラメータのリストに「コード」を追加することでした

その後、Facebook自体が問題を修正したように見えるアップデートパッケージをリリースしました。

この回答の時点で facebook-graph-sdk の最新バージョンがあることを確認してください。バージョンは5.6.2

4
Shobi