web-dev-qa-db-ja.com

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

最初に、この質問に対する答えをかなりの期間検索したと言ってみましょう。

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

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

私の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=0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

問題が何であるか迷っています...

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

スクリーンショット2 enter image description here

204
dangel

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

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

https://developers.facebook.com/apps

  1. 正しいアプリを選択して編集ボタンをクリックしてください。

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

65
Lei Lionel

万が一誰かがこれに遭遇してこれらの設定を探している場合(私がしていたように)

必ず

  1. 左側にある[+製品を追加]をクリックして[Facebookログイン]を選択します(これは私にとって一番上でした)。
  2. 左側にある新しい設定を見る
  3. その「製品設定」にこれらのOAuth設定があります。

enter image description here

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

191
Craig Lambie

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

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

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

これが誰かに役立つことを願っています。

49
Swoot

アプリが公開されていることを確認してください。 +をクリックして商品を追加する商品に進む=> Facebookログイン今すぐ次の操作を行います。

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

コールバックURLの認証解除: https://example.com/facebookapphttp://unicodeitsolutions.com/

31
Sanjoy Kanrar

これが私がこの問題を解決するためにしたことです: enter image description here

基本的に:

1) " 埋め込みブラウザOAuthログイン "を有効にします。

2) " リダイレクトURIに厳密モードを使用する "を無効にして、私が行ったようにリダイレクトURIを入力します。

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

4)変更を保存してください。

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

18
bangbang

私は同じ問題を抱えていました、そしてそれは間違ったclient_id/Facebook App IDから来ました。

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

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

7

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

前:https://my-website.com

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

(URLはあなたの場合と異なるかもしれません、ブラウザのアドレスバーでそれをチェックしてください)。

これは、[リダイレクトURIに厳密モードを使用]設定が[はい]の位置でロックされているために発生しました。

6
Cosmin

ここをクリックしてコードプロジェクト !そのコードプロジェクトの例。それは私に働きます

enter image description here

ほとんどの場合、それはFBダッシュボードの製品セクションに適切な 有効なOAuthリダイレクトURL を挿入しないことで起こります。

01.アプリの基本設定を確認し、あなたと下の絵で大丈夫

enter image description here

02.商品を追加したかどうか確認してください

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

はいの場合は製品設定の中に入りました。 enter image description here

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

その単純なことは、ログイン後に何をすべきかを意味します。それはあなたのURlへのコールバック以外の目的ではありません。 enter image description here

  1. さらに問題がある私のビデオを見てください - > https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s
5

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

私は今日この問題を抱えていました、私はFacebookのドキュメントとSDKが他人の開発者に対して無礼で傲慢だと言って控えめに言っています。

多くの情報なしで2つの異なる場所に「アプリドメイン」を持つことに加えて(「Web」プラットフォームを追加する場合は3)、 app products/facebook login/settings に移動してリダイレクトURLを追加する必要もあります。 有効なOAuthリダイレクトURI

エラーはoauth設定について何も言わない。

4
adrianTNT

私は同じ問題を抱えていました、

私のアプリケーションの設定で、私のローカルアドレス http://localhost/Facebook%20Login%20Test.html のリンクをSite URLに追加しました https://developers.facebook.com/apps

今ではうまくいきます:)私はこれが便利だったと思います;)

4
iteb khayati

2017-10年現在。

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

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

... アプリのクライアントOAuth設定。クライアントおよびWeb OAuthログインがオンになっていることを確認してください ...

enter image description here

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

末尾のスラッシュは重要です。アプリコードとFB管理者設定で一致する必要があります。それで、これはあなたのコードのどこかにあるconfigです(devアプリケーションのためにどのようなドメイン名を取得するかについては以下を見てください):

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

そしてここ

enter image description here

ローカルの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では動作しません。私は Git for 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

例えばport部分を取り除くために:3000はNGINXをセットアップします。

4
Green

私が使用していたSDKのバージョンを更新するまで、何も私にとって本当にうまくいきませんでした。私は5.0から始めました。 5.4.0でも動作しません。 5.6.2にアップデートしたとき、関連する変更ログに何もないにもかかわらず、それは完璧に動作しました!

3
Ste_95

私の場合、私がしなければならなかったことはEmbedded Browser OAuthログインを有効にすることだけです。

enter image description here

2
sh6210

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

2
Kenneth Spencer

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

enter image description here

2

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

enter image description here

2

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

1
Anum Sheraz

私は同じ問題を抱えていました.....発行はバージョン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']);

1
Chevelle

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

ここで理解すべき主なことがあります。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>

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

127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev

Next:あなたのApacheサーバを再起動すれば、全てうまくいくはずです。


私はこれがあなたを助け、あなたの時間を節約することを願っています。私は一日中ウェブを検索して無駄にして髪を引き抜いていて、これが見つかるまで何も役に立たなかった。

1
Albo Best

本番環境でも、これと同じFacebookエラーが発生しました。その理由は、2つのアプリがFacebookに登録されている(Local、Production)のですが、LocalアプリIDをソースコードにハードコードし、デプロイ前にProductionアプリIDに切り替えるのを忘れていました。

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

0
Jimmy Shaw

自分のローカルサーバーを使う。

以下のURLにhttp://localhost/my-siteをURLとして追加するだけです。

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

私のために働いた。

0
Reece Kenney

最初のステップ:すべての https://example.in またはSSL証明書URLを使用する、 http://example.in を使用しない

第二段階:facebookのアプリケーション設定 - >基本設定 - >あなたのドメインまたはサブドメインの追加

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

4番目のステップ:facebookのアプリケーション設定 - >事前設定 - >ドメインマネージャ - >あなたのドメイン名を追加する

この手順をすべて実行してから、アプリケーションID、アプリケーションのバージョン、セットアップのためのアプリの秘密を使用します。

0
ganesh avhad

FBがログイン手順を厳しくするにつれて、問題とその答えは変わり続けています。今日、私はこのホラーメッセージ「このURLのドメインはアプリのドメインに含まれていません。このURLを読み込むことができるようにするには、アプリ設定のApp Domainsフィールドにアプリのすべてのドメインとサブドメインを追加してください」。

答えは次のとおりです。今すぐFBは完全なリダイレクトURIを望んでいます。だから私にとっては、それはかつて https://www.example.com になっていましたが、今は https://www.example.com/auth/facebook/callback が必要です。これは「有効なOAuthリダイレクトURI」フィールドに入力する必要があります(Developer/Facebook login-> setting)。

0
Peter Robinson

Facebookログイン - >設定 - >有効なOAuthリダイレクトURI - >あなたのリダイレクトURLのドメインを挿入してください、あなたは 'https'かhttpを追加するべきであることを覚えていてください。例:リダイレクトURLがhttps://xxx.xxx.com/path/callback.doの場合は、https://xxx.xxxと入力するだけで済みます。 .com/、私には問題ありません。

0
刘同彬