Facebook OAuth「このURLのドメインはアプリのドメインに含まれていません」


248

最初に、この質問に対する回答をかなり長い間検索してきたと言いましょう...

自分のマシンでローカルに開発されているアプリケーションで動作するようにFacebook OAuthをセットアップしようとしています。Facebookの認証ですべてが完璧に機能していましたが、使用localhostから別のドメイン名(まだ私のマシンのローカル)に移動するまでは、次のエラーが発生します。

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

私のhostsファイルには127.0.0.1 photovote.dev (完璧に機能する)が含まれています

私のアプリでのリダイレクト(Socialiteを使用)は http://photovote.dev/auth/facebook/callback

Facebookアプリの設定で...

  • 私のアプリのドメインは photovote.dev
  • 私のサイトのURLは http://photovote.dev/
  • 私の有効なOAuthリダイレクトURIは http://photovote.dev/auth/facebook/callback

エラーメッセージが表示されたときのURLは次のとおりです。

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fphotovote.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code&state=0ztcKhmWwFLtj72TWEMLDLD95MZZMZMZZMZM

私は何が問題なのか途方に暮れています...

スクリーンショット1
スクリーンショット

スクリーンショット2 ここに画像の説明を入力してください


3
こんにちは、dangel、この投稿からFB client_idを難読化することをお勧めします
a.benain

@dangelどのようにしてこの問題を解決しましたか??私は同じ問題を抱えていますが、解決できません。
ギミール2017年

@Ghimire、私の状況では、URLを変更し、client \ secretを更新しませんでした。以下の解決策を読むと、実際には同じエラーが発生するさまざまな理由が考えられます。
dangel

@dangelはこれを確認してください。stackoverflow.com/questions/46626914/...
Ghimire

回答:


81

これは通常、Facebookでアプリを作成したときに誤った詳細を入力した場合に発生します。または、既存のアプリのURLを変更しましたか?

このページでアプリの設定を再確認してください。

https://developers.facebook.com/apps

  1. 正しいアプリを選択し、編集ボタンをクリックします。

  2. URLとパスが正しく入力され、Ultimate Facebookプラグインをインストールしたサイトを指していることを確認してください。


3
私はちょうどあなたが「あなたが既存のアプリのURLを変更した」と言ったことを正確に何が起こったのかを見ました、そしてそれが新しいクライアント\シークレットIDを生成させたと思います
dangel

こんにちは、私のアプリにもfb oauthを実装しようとしています。私はfbアプリのすべての詳細を与えています。ただし、コールバックのリダイレクト中に次のエラーが表示されます。InternalOAuthError:D:\ node_tutorials \ fb \ node_modules \ passport-oauth2のStrategy.OAuth2Strategy._createOAuthError(D:\ node_tutorials \ fb \ node_modules \ passport-oauth2 \ lib \ strategy.js:370:17)でアクセストークンを取得できませんでした\ lib \ strategy.js:166:45 at D:\ node_tutorials \ fb \ node_modules \ oauth \ lib \ oauth2.js:177:18
Anand

それを試すもう1つのことは私にとってうまくいきました:コールバックをhttpsからhttpに切り替えてみてください。これには、getLoginUrl()を呼び出すコードの変更と、アプリ設定のコールバックURLの変更の両方が含まれます。コールバックは、サイトがHTTPSを使用しているにもかかわらず、何らかの理由でHTTPSで動作しませんでした。
Josh10billion 2017年

同じ問題がありますが、ページをローカルで開くと、許可されたアドレスに127.0.0.1:8000を追加しました。これは、easyphpインストールが構成されている方法ですが、それでも機能しません。オンラインでのみFBスクリプトをテストできますか?!?
ジャンプジャック

「編集ボタンをクリックして」とは
Alexander Mills

210

誰かがこれに遭遇し、これらの設定を探している場合(私がそうであったように)

必ず

  1. 左側で、[+製品を追加]をクリックして[Facebookログイン]を選択します(これは私にとって一番上でした)
  2. 左側で利用可能な新しい設定をご覧ください
  3. これで、「製品設定」にこれらのOAuth設定が表示されます

ここに画像の説明を入力してください

追加情報:のようなコールバックURLを追加してくださいhttp://localhost:3000Valid OAuth redirect URIsFacebookログインの設定ページ上のフィールド


22
これは、エラーメッセージの意味ではありません。有効なOAuthリダイレクトURIに関する特定のエラーメッセージがありますが、これはここでは発生していません。メッセージは、設定»基本»アプリドメインを明確に参照しています。ただし、問題は、正しいドメインが入力されていても、エラーメッセージが表示されることです。
fritzmg 2017年

@HakamFostokアーバンディクショナリは別として、特にコーディングの世界では、数学はLHS / RHS en.wikipedia.org/wiki/Sides_of_an_equationの意味で上位に君臨します。
Craig Lambie 2017年

9
これで解決しました。ドメインを正しく入力したにもかかわらず、リダイレクトURLを追加していませんでした。リダイレクトURLを追加すると、問題が修正されました。現時点では、FBがこの問題に対して間違ったエラーメッセージを送信しているようです。
Richard Garside

私はローカルで作業していますが、これは私のURL 127.0.0.1/CM/publicです。有効なOAuthリダイレクトURIは何ですか?
Youssef Boudaya

1
これはapi v2.7で私にとってはうまくいき、@ RichardGarsideのコメントは正確です。値が設定されていなかったためValid OAuth Redirect URIs、このフィールド値を追加すると、の更新に関連する不正なFBエラーメッセージが解決されましたApp Domains
johnsampson

60

私も同じ問題を抱えていました。OAuthリダイレクトURIを引数としてgetAccessToken関数呼び出しに追加することで解決しました。

$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")

その関数に引数が送信されない場合、SDKはリダイレクトURIを自動的に生成しますが、これは機能するはずですが、私の場合は機能しませんでした。

これが誰かを助けることを願っています。


2
これは、Webサイトをhttpからhttpsに移動した後に機能させる唯一の方法です。Facebook API設定ですべてのドメインを変更した後でも、機能しません。
Chris

6
これは受け入れられる答えになるはずです。問題を解決します!
tormuto 2018年

私の場合、URL自体に空のパラメータを含めないでください。getAccessTokenに「www.example.com?param」を指定すると、FBは、getLoginUrlに指定したURIと一致しないと常に言っていましたが、まったく同じであることが確実です。「www.example.com」を使用しても、このようなエラーは発生しません。
Chlind

2
ありがとうございました 。これで解決-これらのエラーはすべて抽象的/あいまいで、どこを見ればよいのかわからないため、facebookからは本当に悪い
digitalzoomstudio

これは質問に答えます。
John

35

アプリが公開されていることを確認します。+製品の追加をクリックして、製品に移動します=> Facebookログイン次の手順を実行します。

有効なOAuthリダイレクトURI:example.com/

コールバックURLの許可を取り消す:https : //example.com/facebookapp http://unicodeitsolutions.com/


1
何がDeauthorize Callback URL : https://example.com/facebookapp必要ですか?それなしで動作しますか?
ヨルダン

コールバックURLの認証解除は必須ではありません...ユーザーがアプリの認証を解除すると、facebookがURLでpingを送信します。
Sanjoy Kanrar

20

この問題を解決するために私がしたことは次のとおりです。 ここに画像の説明を入力してください

基本的に:

1)「組み込みブラウザOAuthログイン」を有効にします

2)[ リダイレクトURIに厳密モードを使用する]を無効にし、私と同じようにリダイレクトURIを入力します。

3)残りのオプションはすべてそのままにします。

4)変更を保存します。

5)お楽しみください:)


これで解決しました。チュートリアルを実行してローカルでテストしているだけなので、アプリを公開したくありませんでした。ありがとう@bangbang
PHBeagle

1
私にとって、リダイレクトURIに厳密モードを使用を無効にすることはできません。
fdehanne

8

同じ問題があり、間違ったclient_id / Facebook App IDが原因でした。

Facebookアプリを「公開」または「オンライン」に切り替えましたか?切り替えると、Facebookは新しいアプリIDで新しいアプリを作成します。

URLの「client_id」パラメーター値をFacebookダッシュボードのパラメーター値と比較できます。


私が行ったのは、対応するようにドメインとサイトのURLを変更し、localhostからphotovote.devに変更しただけです。アプリとFacebookの設定でリダイレクトURIを更新しました。新しいアプリを作成してみるだけかもしれません
dangel

うーん、アプリの設定で何かを変更したので、新しいIDが生成されたと思います。これは、一致しなくなったためです。おそらく、サイトのURLを更新したときですか?それが再び機能しているにもかかわらず
dangel

これでうまくいきました。本番環境で古いアプリIDを使用していました。
Marcus W

8

私が修正した方法:有効なOAuthリダイレクトURIテキストボックスに移動して、ドメインだけなく正確な URL を設定しました:

前: https://my-website.com

後: https://my-website.com/facebookoauth/facebooklogin

(URLはあなたのケースでは異なる場合があります。ブラウザのアドレスバーで確認してください)。

これは、リダイレクトURIに厳密なモードを使用する設定が原因で発生しました。


これを本当にありがとう。これで問題が解決しました
vickris

7

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

今日、この問題がありました。FacebookのドキュメントとSDKは、控えめに言っても他の開発者に対して失礼で傲慢です。

情報の少ない2つの異なる場所に「アプリドメイン」があること(「ウェブ」プラットフォームを追加する場合は3つ)に加えて、アプリ製品/ facebookログイン/設定に移動し有効なOAuthリダイレクトURIにリダイレクトURLを追加する必要もあります。

エラーには、oauth設定についての説明はありません。


1
はい、私もこの追加の手順を実行する必要がありました。ドキュメントに関するあなたの見解を共有します!
Magnus Smith

6

2017-10現在。

私の問題を解決した解決策。

現在、そのFBはこの驚きを表しています。

... アプリのクライアントOAuth設定。クライアントとWeb OAuthログインがオンになっていることを確認します...

ここに画像の説明を入力してください

調整する設定は、https://developers.facebook.com/apps/ [your_app_itentifier] / fb-login /にあります

末尾のスラッシュは重要です。アプリのコードとFB管理設定で一致する必要があります。したがって、これはコードのどこかにある設定です(以下の開発アプリのドメイン名を取得する方法を参照してください)。

{
    callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}

そしてここ

ここに画像の説明を入力してください

ローカルWindowsマシン上のアプリのドメイン名を取得するには、hostファイルを編集します。カスタム名は、すべてのそれらを取り除くために良いですlocalhost:80800.0.0.0:30303127.0.0.0:8000、など。FBなどの一部のサードパーティサービスでは、127.0.0.0名前を使用できない場合があるためです。

Windows 10のhostsファイルはここにあります:

C:\Windows\System32\drivers\etc\hosts

最初のファイルをバックアップし、別の名前でコピーを作成します(ネイティブのWindows CMDでは機能しません。Gitfor Windowsを使用しています。多くのUnixコマンドがあります)

$ cp hosts hosts.bak

これを追加 hosts

127.0.0.1  myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1  www.myotherapp.io # In a browser http://www.myotherapp.io:2020

:3000たとえば、ポートパーツを取り除くために、NGINXをセットアップします。


このおかげで、末尾のスラッシュが必要だとは思いもしませんでした!
アンディホームズ

2018年5月11日、アプリのコールバックURLとFacebookの有効なoauthリダイレクトURIは同じである必要があります。そしてhttpsは必須です。
Yuda Prawira、2018年

末尾のスラッシュは私の時間を節約します。ありがとう!
HyoJin KIM


6

ほとんどの場合、FBダッシュボードの製品セクションに適切な有効なOAuthリダイレクトURLを挿入しないと発生します。以下の手順に従うことをお勧めします

01. アプリの基本設定があなたと一緒に怒鳴る写真で問題ないことを確認する

ここに画像の説明を入力してください

02. 製品を追加したかどうかを確認します

そうでない場合は、以下のように+サインをクリックして、ログイン製品を簡単に追加できます。

はいの場合は、製品設定の内部に移動しました。 ここに画像の説明を入力してください

03. 有効なOAuthリダイレクトURLを提供したかどうかのチェック

その単純なことは、ログイン後に何をすべきかを意味します。それは、URlへのコールバック以外にはありません。いくつかのリダイレクトURLを追加した私の怒鳴る画像で確認できます。 ここに画像の説明を入力してください

  1. さらに問題がありますビデオを見る-> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s

2年前の質問であり、外部サイトへのリンクは回答の主要コンテンツではありません。
zzxyz 2018年

6

Facebookは最近、「リダイレクトURIに厳密モードを使用」のトグルボタンを無効にしたため、ログインボタンを押したときに呼び出されるURIを正確に追加する必要があります。私の場合、スクリーンショットのようになりました。それは私のために問題を解決しました:)

ここに画像の説明を入力してください



5

私の場合、私がしなければならなかったのは、埋め込みブラウザのOAuthログインのみを有効にすることです

ここに画像の説明を入力してください


また、ブラウザベースのログインを使用していたため、同じ問題に直面していました。また、下に入力ボックスがあり、ここに正確なリダイレクトURIを入力する必要がありました。
アブサン

4

使用していたSDKのバージョンを更新するまで、実際には何も機能しませんでした。5.0から始めました。5.4.0も機能しません。5.6.2に更新すると、関連する変更ログに何もないにもかかわらず、問題なく動作しました。


1
私はまさにこの問題を抱えていました!「5.4.2」を使用していて、「5.6.2」にアップグレードしました
John Smith、

2

このオプションはポータルで有効にする必要があります:

ここに画像の説明を入力してください


ありがとう。私は同じ問題を抱えていて、これが私が見逃したスイッチでした。
timeon

ありがとう!これも私にとっては効果的でした(私はGoogle Firebaseを使用していました。「有効なOAuthリダイレクトURI」をGoogleからプロジェクトに提供されたOAuthリダイレクトURIに設定する必要もありました。)
mwang25

2

これが他の人を助ける場合、古いサイトで「有効なOAuthリダイレクトURI」が必須になったときに、これが起こり始めました。サイトはまだV4 PHP SDKを使用しており、V5 SDKにアップグレードすることで問題は解決しました。


1

アプリドメインセクションでは、アプリドメインを記述していますが、ログインドメイン、つまりユーザーにログインを求めるHTMLページの名前も追加する必要があります。私の場合、localhostでテストしており、ログインルートはlocalhost / loginでした。アプリドメインセクションにhttp://localhost.comのみを配置すると、このエラーが発生します。しかし、http://localhost/login.comを追加した後、エラーは修正されました。また、アプリの設定が新しいバージョンのSDKで変更され、OAuthリダイレクトルートのオプションはありません。OAuthトークンを正常に取得した後、サーバー側から直接リダイレクトルートを割り当てる必要があります。


1

これは私のために働きました:

ここで、理解しておくべき主なことを説明します。Facebookは常に「WWW」ドメインをチェックします。したがって、最初にブラウザでwww.your_domain.devが動作していることを確認してください。

ローカルサーバーに複数の仮想ホストがある場合、他の仮想ホストが " www.your_domain.dev "を上書きする可能性があります。確認してください。Apacheはドメイン(またはポート、またはこれらの用語で何か)の最初の定義を選択します-私はこれについての専門家ではありませんが、間違いによって学ばれました。この仮想ホストの上書きを簡単にすばやく修正するには、「www.your_domain.dev仮想ホスト定義をファイル「httpd-vhosts.conf」の最上部に配置します。

/apache/conf/https-vhosts.conf」に移動し、これをファイルの最上部に配置します。

<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>

###### FOR SSL #####
<VirtualHost *:443>
    DocumentRoot "C:/your_app_folder_path/"
    ServerName your_domain.dev
    ServerAlias www.your_domain.dev
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/your_app_folder_path/">
        Options All
        AllowOverride All
        Require all granted 
    </Directory>
</VirtualHost>

次へ: Windowsシステムを使用している場合は、「C:\ Windows \ System32 \ drivers \ etc」の「hosts」ファイルを編集して、次の 2行を追加します。

127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev

次のステップ: Apacheサーバーを再起動すると、すべてが正常に機能するはずです。


これがあなたを助け、あなたの時間を節約することを願っています。私はほぼ1日中Webを検索していて、髪を抜いていたので、これが見つかるまで何も役に立たなかった。


1

私は同じ問題を抱えていました..... issuはバージョンPHP SDK 5.6.2にあり、修正は次のファイルを編集していました:

facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php

この行を変更

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);


0

これと同じFacebookエラーが実稼働環境で発生しました。その理由は、Facebookに2つのアプリを登録していた(ローカル、プロダクション)のですが、ローカルアプリIDをソースコードにハードコードし、展開前にプロダクションアプリIDに切り替えるのを忘れていました。

ベストプラクティスでは、アプリIDをソースコードにハードコード化するべきではないと規定していますが、そうする場合でも、誤って行ったように、さまざまなFacebookアプリIDを一致させないでください。


0

自分のローカルサーバーを使用する。

次のhttp://localhost/my-siteURLとして追加するだけです。

https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/

私のために働いた。


0

問題とその答えは、FBがログイン手順を強化するにつれて変化し続けます。今日、このホラーメッセージが表示され始めました。「このURLのドメインはアプリのドメインに含まれていません。このURLを読み込めるようにするには、アプリのすべてのドメインとサブドメインをアプリ設定の[アプリのドメイン]フィールドに追加してください。」

答えは次のとおりです。FBは完全なリダイレクトURIを必要としています。だから、それがために使用され、私のためだけhttps://www.example.comをそれが今望んでいるhttps://www.example.com/auth/facebook/callback。これは「有効なOAuthリダイレクトURI」フィールドに入力する必要があります(開発者/ Facebookログイン->設定)


0

Facebookログイン->設定->有効なOAuthリダイレクトURI->リダイレクトURLのドメインを挿入します。「https」またはhttpを追加する必要があります。例えば:あなたのリダイレクトURLの場合https://xxx.xxx.com/path/callback.do、あなただけ入力する必要がhttps://xxx.xxx.com/を、それは私のために大丈夫です。


0

最初のステップ:すべてのhttps://example.inまたはssl証明書のURLを使用します。http: //example.inは使用しないでください

2番目のステップ:faceboookアプリケーション設定->基本設定->ドメインまたはサブドメインを追加

3番目のステップ:faceboookアプリケーションのログイン設定->有効なOAuthリダイレクトURI->ログイン後にすべてのリダイレクトURLを追加

4番目のステップ:faceboookアプリケーション設定->詳細設定->ドメインマネージャー->ドメイン名を追加

このすべての手順を実行してから、セットアップにアプリケーションID、アプリケーションバージョン、アプリケーションシークレットを使用します


0

Magento 2ソーシャルログイン拡張機能では、パネルから有効なOAuthリダイレクトURIをコピーし、developers.facebook.comのクライアントOAuth設定ページの有効なOAuthリダイレクトURIフィールドへのリンクを追加する必要があります。



-1

答えのほとんどは、アプリのドメインにURLを追加することに関するものですが、会社で働いている場合は、これらのアクセス権がありません。それらについては、仮想ホストを作成してホストエントリを作成するだけで、これをバイパスできます。


これをホストファイル(/ etc / hosts)127.0.0.1 www.your_domain.comに追加します

仮想ホストを作成します。これをApache仮想ホストに使用しました

ServerAdmin webmaster @ localhost ServerName www.your_domain.com

    ProxyPass / http://localhost:5006/
    RewriteMap  lc int:tolower
    LogLevel debug

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.