Facebookアプリでログインしようとすると、次のエラーが発生します。
URLを読み込めません:このURLのドメインはアプリのドメインに含まれていません。このURLを読み込めるようにするには、アプリのすべてのドメインとサブドメインをアプリ設定の[アプリドメイン]フィールドに追加します。
次の画像でわかるように:
URL: http://www.facebook-php-test.com
以下は、Facebookアプリで設定した構成です。
(注意:プライバシー保護のため、画像のApp ID
とApp Secret
の値を変更しました)
この基本的なサンプルアプリケーションのコードは、次のGitHubリポジトリにあります。
https://github.com/zeuscronos/facebook-php-test.com
実際にそこにあるのになぜthe domain of this URL isn't included in the app's domains
と書かれているのか本当にわかりません。
フィールドで:App Domains
両方のドメインで同時に試しました:
しかし、成功しません。
生成されるログインURLは次のとおりです。
ドメインfacebook-php-test.com
をApacheサーバー上の仮想ホストとして構成しました。
私はFacebook PHP SDK
で多くの仕事をしたと言わざるを得ませんが、これに苦労するのはこれが初めてです。実際、私が使用していた別の大きなアプリケーションでこの問題が発生し、問題を解決しようとして数時間後、このダミーアプリケーションを作成して、問題の原因を突き止めようとしました。
私は多くのことを試みましたが成功しませんでした。
これを解決する方法について何かアイデアはありますか?
ありがとう。
編集01
Mr.Geeker
コメントの提案に従って、私は次のことを行いました...
製品を追加しました:Facebook Login
そして以下のように構成しました:
その後、ようやく先に進むことができ、許可を求められました。
しかし、残念ながら、アクセス許可を付与した後、次のようになりました。
この時点からどのように続行するかについてのアイデアはありますか?
編集02-解決策
オプションの無効化を終了しました:Use Strict Mode for Redirect URIs
の下のClient OAuth Settings
。彼らはそれがstrongly recommended
にこの機能On
があると言いますが、私はこれをそのOn
で動作させることができませんでした。
ちなみに、私も無効にしました:Client OAuth Login
私のアプリはそれを使用していないので。
最後に、Client OAuth Settings
で有効にしている機能はWeb OAuth Login
だけです。
Facebookは現在、いくつかの機能をプラグインとして役割を果たしています。左側で[製品]を選択し、製品を追加します。次に、FacbookLoginを選択します。そこからかなり簡単に、すべてのOauthオプションが表示されます。
最初に答えたように ここ
2018年3月、FacebookはAPIを更新し、すべてのアプリに厳密モードをオンのままにするように強制しました。
これを機能させるには、有効なOAuthリダイレクトURIフィールドに完全なコールバックURLを含める必要があります。「 https://www.example.com/facebook」にリダイレクトする場合/ callback "、完全なURIを含める必要があります(パラメーターなし):
ドメインは、基本設定ページのアプリドメインとウェブサイトサイトのURLフィールドで設定する必要があります。
これらのいずれも機能せず、「URLを読み込めません:このURLのドメインはアプリのドメインに含まれていません」の場合。メッセージが表示され続けますSDKの最新バージョンがあるかどうかを確認してください。 de PHP SDKをバージョン5.5から5.6.2に更新した後、動作させることができました
PHP 5.5を使用していますが、バグが見つかりました。
PHP Facebook API VERSION = '5.5.0'、DEFAULT_GRAPH_VERSION = 'v2.9'は、次のようにコールバックページにURI ?code = XXXを追加していました。
mydomainExample.com/callbackFacebook.php ?code = XXXXXXX
そして、ソースコードを変更して、「?」の後の文字列を削除しました。現在、コールバックURLは
mydomainExample.com/callbackFacebook.php
修正は、ファイルFacebook/Helpers/FacebookRedirectLoginHelper.php内のgetAccessToken関数内で行うことができます。以下のように226行目に「if」を追加すると、問題は解決しました。
$redirectUrl = $redirectUrl ?: $this->urlDetectionHandler->getCurrentUrl();
//the next 3 lines was added to avoid the bug (fixed)
if(strripos($redirectUrl, "?")){
$redirectUrl = substr($redirectUrl, 0, strripos($redirectUrl, "?"));
}
// At minimum we need to remove the state param
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl, ['state']);