最初に、この質問に対する答えをかなりの期間検索したと言ってみましょう。
私は自分のマシン上でローカルに開発されている私のアプリケーションで動作するように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
ですhttp://photovote.dev/
ですhttp://photovote.dev/auth/facebook/callback
ですエラーメッセージ時のURLは..
問題が何であるか迷っています...
これは通常、Facebookでアプリを作成したときに間違った詳細を入力した場合に発生します。それとも、既存のアプリのURLを変更しましたか?
このページであなたのアプリの設定を再確認してください。
https://developers.facebook.com/apps
正しいアプリを選択して編集ボタンをクリックしてください。
URLとパスが正しく入力され、あなたがUltimate Facebookプラグインをインストールしたサイトを指していることを確認してください。
万が一誰かがこれに遭遇してこれらの設定を探している場合(私がしていたように)
必ず
追加情報: Facebookログインの設定ページのhttp://localhost:3000
フィールドにValid OAuth redirect URIs
のようなコールバックURLを必ず追加してください。
私は同じ問題を抱えていました。私は自分のOAuthリダイレクトURIを引数としてgetAccessToken関数呼び出しに追加することで解決しました。
$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")
その関数に引数が送信されない場合、SDKはそれ自身でリダイレクトURIを生成しますが、これは機能しますが、私の場合はそうではありません。
これが誰かに役立つことを願っています。
アプリが公開されていることを確認してください。 +をクリックして商品を追加する商品に進む=> Facebookログイン今すぐ次の操作を行います。
有効なOAuthリダイレクトURI:example.com/
コールバックURLの認証解除: https://example.com/facebookapp
私は同じ問題を抱えていました、そしてそれは間違ったclient_id/Facebook App IDから来ました。
Facebookアプリを「公開」または「オンライン」に切り替えましたか?切り替えると、Facebookは新しいApp IDを使用して新しいアプリを作成します。
URLの「client_id」パラメータの値とFacebookのダッシュボードの値を比較できます。
私がそれを修正した方法:私は有効なOAuthリダイレクトURIテキストボックスに行き、 正確な URL、 だけでなくドメインを設定しました :
前:https://my-website.com
後:https://my-website.com/facebookoauth/facebooklogin
(URLはあなたの場合と異なるかもしれません、ブラウザのアドレスバーでそれをチェックしてください)。
これは、[リダイレクトURIに厳密モードを使用]設定が[はい]の位置でロックされているために発生しました。
ここをクリックしてコードプロジェクト !そのコードプロジェクトの例。それは私に働きます
ほとんどの場合、それはFBダッシュボードの製品セクションに適切な 有効なOAuthリダイレクトURL を挿入しないことで起こります。
01.アプリの基本設定を確認し、あなたと下の絵で大丈夫
02.商品を追加したかどうか確認してください
そうでない場合は、以下のように+サインをクリックして簡単にログイン製品を追加できます。
03.有効なOAuthリダイレクトURLを提供したかどうかの確認
その単純なことは、ログイン後に何をすべきかを意味します。それはあなたのURlへのコールバック以外の目的ではありません。
URLを読み込めない:このURLのドメインはアプリのドメインに含まれていません。このURLを読み込めるようにするには、アプリ設定の[App Domains]フィールドにアプリのすべてのドメインとサブドメインを追加します。
私は今日この問題を抱えていました、私はFacebookのドキュメントとSDKが他人の開発者に対して無礼で傲慢だと言って控えめに言っています。
多くの情報なしで2つの異なる場所に「アプリドメイン」を持つことに加えて(「Web」プラットフォームを追加する場合は3)、 app products/facebook login/settings に移動してリダイレクトURLを追加する必要もあります。 有効なOAuthリダイレクトURI
エラーはoauth設定について何も言わない。
私は同じ問題を抱えていました、
私のアプリケーションの設定で、私のローカルアドレス http://localhost/Facebook%20Login%20Test.html のリンクをSite URL
に追加しました https://developers.facebook.com/apps 。
今ではうまくいきます:)私はこれが便利だったと思います;)
2017-10年現在。
私の問題を解決した解決策。
現在、FBはこの驚きを表現しています。
... アプリのクライアントOAuth設定。クライアントおよびWeb OAuthログインがオンになっていることを確認してください ...
調整する設定はここにあります https://developers.facebook.com/apps/[your_app_itentifier]/fb-login/ 。
末尾のスラッシュは重要です。アプリコードとFB管理者設定で一致する必要があります。それで、これはあなたのコードのどこかにあるconfigです(devアプリケーションのためにどのようなドメイン名を取得するかについては以下を見てください):
{
callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}
そしてここ
ローカルのWindowsマシン上のアプリのドメイン名を取得するには、Host
ファイルを編集します。 localhost:8080
、0.0.0.0:30303
、127.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をセットアップします。
私が使用していたSDKのバージョンを更新するまで、何も私にとって本当にうまくいきませんでした。私は5.0から始めました。 5.4.0でも動作しません。 5.6.2にアップデートしたとき、関連する変更ログに何もないにもかかわらず、それは完璧に動作しました!
これが他の誰かを助ける場合、これは私にとって古いサイトで "有効なOAuthリダイレクトURI"が必須になったときに起こり始めました。このサイトではまだV4 PHP SDKを使用していたので、V5 SDKにアップグレードすることで問題は解決しました。
[App domain]セクションでは、アプリドメインを作成していますが、ログインドメイン、つまりユーザーにログインを要求するHTMLページの名前も追加する必要があります。私の場合、私はlocalhostでそれをテストしていて、ログインルートはlocalhost/loginでした、私がAppドメインセクションに http://localhost.com のみを入力した場合、このエラーが発生します。しかし、 http://localhost/login.com を追加した後、エラーが修正されました。また、新しいバージョンのSDKでは、Appの設定も変更されています。OAuthリダイレクトルートのオプションはありません。 OAuthトークンの取得に成功したら、サーバー側から直接リダイレクトルートを割り当てる必要があります。
私は同じ問題を抱えていました.....発行はバージョン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']);
これは私のために働きました:
ここで理解すべき主なことがあります。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サーバを再起動すれば、全てうまくいくはずです。
私はこれがあなたを助け、あなたの時間を節約することを願っています。私は一日中ウェブを検索して無駄にして髪を引き抜いていて、これが見つかるまで何も役に立たなかった。
本番環境でも、これと同じFacebookエラーが発生しました。その理由は、2つのアプリがFacebookに登録されている(Local、Production)のですが、LocalアプリIDをソースコードにハードコードし、デプロイ前にProductionアプリIDに切り替えるのを忘れていました。
ベストプラクティスでは、アプリIDをソースコードにハードコードするべきではありませんが、そうする場合は、私が誤って行ったように、さまざまなFacebookアプリIDを一致させないでください。
自分のローカルサーバーを使う。
以下のURLにhttp://localhost/my-site
をURLとして追加するだけです。
https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/
私のために働いた。
最初のステップ:すべての https://example.in またはSSL証明書URLを使用する、 http://example.in を使用しない
第二段階:facebookのアプリケーション設定 - >基本設定 - >あなたのドメインまたはサブドメインの追加
3番目のステップ:faceboookアプリケーションのログイン設定 - >有効なOAuthリダイレクトURI - >ログイン後にすべてのリダイレクトURLを追加する
4番目のステップ:facebookのアプリケーション設定 - >事前設定 - >ドメインマネージャ - >あなたのドメイン名を追加する
この手順をすべて実行してから、アプリケーションID、アプリケーションのバージョン、セットアップのためのアプリの秘密を使用します。
FBがログイン手順を厳しくするにつれて、問題とその答えは変わり続けています。今日、私はこのホラーメッセージ「このURLのドメインはアプリのドメインに含まれていません。このURLを読み込むことができるようにするには、アプリ設定のApp Domainsフィールドにアプリのすべてのドメインとサブドメインを追加してください」。
答えは次のとおりです。今すぐFBは完全なリダイレクトURIを望んでいます。だから私にとっては、それはかつて https://www.example.com になっていましたが、今は https://www.example.com/auth/facebook/callback が必要です。これは「有効なOAuthリダイレクトURI」フィールドに入力する必要があります(Developer/Facebook login-> setting)。
Facebookログイン - >設定 - >有効なOAuthリダイレクトURI - >あなたのリダイレクトURLのドメインを挿入してください、あなたは 'https'かhttpを追加するべきであることを覚えていてください。例:リダイレクトURLがhttps://xxx.xxx.com/path/callback.doの場合は、https://xxx.xxxと入力するだけで済みます。 .com/、私には問題ありません。