web-dev-qa-db-ja.com

Facebookアプリ-このURLのドメインはアプリのドメインに含まれていません。どうして?

Facebookアプリでログインしようとすると、次のエラーが発生します。

URLを読み込めません:このURLのドメインはアプリのドメインに含まれていません。このURLを読み込めるようにするには、アプリのすべてのドメインとサブドメインをアプリ設定の[アプリドメイン]フィールドに追加します。

次の画像でわかるように:

enter image description here

URL: http://www.facebook-php-test.com

以下は、Facebookアプリで設定した構成です。

注意:プライバシー保護のため、画像のApp IDApp Secretの値を変更しました)

enter image description here

この基本的なサンプルアプリケーションのコードは、次のGitHubリポジトリにあります。

https://github.com/zeuscronos/facebook-php-test.com

実際にそこにあるのになぜthe domain of this URL isn't included in the app's domainsと書かれているのか本当にわかりません。

フィールドで:App Domains両方のドメインで同時に試しました:

  • facebook-php-test.com
  • www.facebook-php-test.com

しかし、成功しません。

生成されるログインURLは次のとおりです。

https://www.facebook.com/v2.10/dialog/oauth?client_id=012345678901234&state=d3758e484d539bebd6505427aaf1fa3b&response_type=code&sdk=php-sdk-5.6.1&redirect_uri=http%3A%2F%2Fwww.facebook-php- test.com%2Ffb-callback.php&scope = email%2Cuser_friends%2Cuser_photos

ドメインfacebook-php-test.comをApacheサーバー上の仮想ホストとして構成しました。

私はFacebook PHP SDKで多くの仕事をしたと言わざるを得ませんが、これに苦労するのはこれが初めてです。実際、私が使用していた別の大きなアプリケーションでこの問題が発生し、問題を解決しようとして数時間後、このダミーアプリケーションを作成して、問題の原因を突き止めようとしました。

私は多くのことを試みましたが成功しませんでした。

これを解決する方法について何かアイデアはありますか?

ありがとう。

編集01

Mr.Geekerコメントの提案に従って、私は次のことを行いました...

製品を追加しました:Facebook Loginそして以下のように構成しました:

enter image description here

その後、ようやく先に進むことができ、許可を求められました。

enter image description here

しかし、残念ながら、アクセス許可を付与した後、次のようになりました。

enter image description here

この時点からどのように続行するかについてのアイデアはありますか?

編集02-解決策

オプションの無効化を終了しました:Use Strict Mode for Redirect URIsの下のClient OAuth Settings。彼らはそれがstrongly recommendedにこの機能Onがあると言いますが、私はこれをそのOnで動作させることができませんでした。

ちなみに、私も無効にしました:Client OAuth Login私のアプリはそれを使用していないので。

最後に、Client OAuth Settingsで有効にしている機能はWeb OAuth Loginだけです。

5
Angel
Facebookは現在、いくつかの機能をプラグインとして役割を果たしています。左側で[製品]を選択し、製品を追加します。次に、FacbookLoginを選択します。そこからかなり簡単に、すべてのOauthオプションが表示されます。

最初に答えたように ここ

4
Mr.Geeker

2018年3月、FacebookはAPIを更新し、すべてのアプリに厳密モードをオンのままにするように強制しました。

これを機能させるには、有効なOAuthリダイレクトURIフィールドに完全なコールバックURLを含める必要があります。「 https://www.example.com/facebook」にリダイレクトする場合/ callback "、完全なURIを含める必要があります(パラメーターなし):

enter image description here

ドメインは、基本設定ページのアプリドメインとウェブサイトサイトのURLフィールドで設定する必要があります。

enter image description here

これらのいずれも機能せず、「URLを読み込めません:このURLのドメインはアプリのドメインに含まれていません」の場合。メッセージが表示され続けますSDKの最新バージョンがあるかどうかを確認してください。 de PHP SDKをバージョン5.5から5.6.2に更新した後、動作させることができました

3
Jorge Palacio

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']);
0
ferreirabraga