web-dev-qa-db-ja.com

Facebookログイン:URLをロードできませんこのURLのドメインはアプリのドメインに含まれていません

私はそのような質問の多くがすでに質問されており、質問を投稿した後に多くのことを試みたことを知っています。私の問題はまだ解決されていません。

Oauth認証を使用してFacebookログインを埋め込んだWebアプリケーションがあります。ヘルプに次のコードを使用しました Facebookログインwith Java

先月までは問題なく機能していましたが、数日後、エラーが継続的に発生しています:-

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

**Setting used are following:-
  Website url : **https://www.enggheads.com/**
  App Domain   :  **enggheads.com**
   Redirect uri : 
      1. https://www.enggheads.com/#!login
      2. https://www.enggheads.com/#!signup**

スクリーンショット:

DashBoard

Basic Setting Of App

Fblogin setting added from add product on right panel

だから、私はこの問題に直面している理由を知りたいだけです。設定セクションに欠けているものはありますか?

[〜#〜] update [〜#〜]

コードフロー:

ステップ1。ボタンでクリックされたURLをクリック--->

"http://www.facebook.com/dialog/oauth?" + "client_id="
                    + FB_APP_ID + "&redirect_uri="
                    + URLEncoder.encode(REDIRECT_URI, "UTF-8")
                    + "&scope=public_profile ";

この部分でエラーが発生するというエラーが表示されますURLをロードできませんこのURLのドメインはアプリのドメインに含まれていません。このURLをロードできるようにするには、アプリのすべてのドメインとサブドメインをアプリ設定の[アプリドメイン]フィールドに追加します。

17
Vartika

ソリューションを作成する2つの方法を共有したいと思います。それがあなたの問題を解決することを願っています。

解決策1:

Facebookはプラグインとしていくつかの機能を提供するようになりました。左側で[製品]を選択し、製品を追加します。次に、Facbook Loginを選択します。そこからかなり簡単に、すべてのOauthオプションが表示されます。

OR、

製品を選択し、製品を追加します。次に、Facbook Loginを選択します。

次に、フィールド'Valid OAuth redirect URIs'http:// localhost:3000 / を追加すると、すべてが機能しました。

解決策-2:

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

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

https://developers.facebook.com/apps

  1. 正しいアプリを選択して、編集ボタンをクリックします。
  2. URLとパスが正しく入力され、Ultimate Facebookプラグインをインストールしたサイトを指していることを確認してください。

クレジットは Lei lionel

更新1:

私はあなたのアクセストークンはすでに失効していると思います。そのため、アクセストークンを拡張する必要があります。これについては、次のリンクをご覧ください。

  1. Facebookアクセストークンを延長する(60日間有効にする)
  2. アクセストークンの有効期限と延長

リソースリンク:

  1. Facebookページの「never-expire」アクセストークンを生成する
  2. Do Facebook Oauth 2.0 Access Tokens Expire?

更新2:

もう1つ質問したいのは、アプリドメインエラーがアクセストークンの有効期限に関係している可能性があるということです。

回答:

サーバー側の長寿命トークンからの長寿命ユーザートークンの生成

Facebookには、次のようなアプリの長寿命のアクセストークンを取得するための高度なオプションがあります。

  1. 独自の認証システムを持っている(たとえば、ユーザー名/パスワードを使用)
  2. さまざまなクライアント(ブラウザーまたはネイティブモバイルアプリ)に送信するFacebookアクセストークンをサーバーに保存します。
  3. それらすべてのクライアントからAPI呼び出しを行う

アプリがこのように設定されている場合、ここで説明するプロセスを使用して各クライアントからアクセストークンを取得し、Facebookの自動スパムシステムのトリガーを回避する必要があります。最終的な結果は、各クライアントが独自の長期間有効なアクセストークンを持つことになります。

高レベルでは、これはクライアントから長命トークンを取得する方法です。

  1. 有効かつ最新の有効期限の長いトークンを使用して、サーバーからFacebookのサーバーを呼び出してコードを生成します。 (これは、Facebookログイン経由で長寿命トークンを既に取得していることを前提としています。使用しているトークンが無効または期限切れの場合、アプリを使用しているユーザーに再度ログインさせて新しいトークンを取得する必要があります。)
  2. そのコードをクライアントに安全に送信します。
  3. 次に、クライアントはコードを長寿命トークンと交換します。
  4. クライアントは、長期間有効なトークンを使用して、ストーリーを投稿したり、データをクエリしたりできます。

コードを取得する

長期間有効なユーザーアクセストークンを使用して、次のエンドポイントを呼び出します。

https://graph.facebook.com/oauth/client_code?access_token=...&client_secret=...&redirect_uri=...&client_id=...

入力が必要です:access_token, client_secret, redirect_uri and client_id.

応答は次のとおりです。

応答は次のようになります。

{"code": "...."}

アクセストークンのコードを利用する

Facebookのサーバーからコードを取得したら、安全なチャネルを介してクライアントにコードを出荷する必要があります。それが完了したら、クライアントからこのエンドポイントにリクエストを行う必要があります。

https://graph.facebook.com/oauth/access_token?code=...&client_id=...&redirect_uri=...&machine_id= ...

この呼び出しには、次の引数が必要です。

client_id-はい

コード-はい

redirect_uri-はい

machine_id-いいえ

応答は次のようになります。

{"access_token":"...", "expires_in":..., "machine_id":"..."}
18
SkyWalker

oauthリダイレクトURLに私が置くだけでしたので、私はそのような問題を抱えていました:- http://example.com/#/redirect-url :- http://example.com

/#/ redirect-urlにのみリダイレクトしたい場合でも。 Ajaxサイトが問題を引き起こす可能性があります。

1
Rolintocour

リダイレクトURIに動的クエリパラメータがある場合、それらは承認リクエストのstateパラメータに入れます。

詳細については、私の answer を同様の投稿で確認してください。

0
chess4ever

Facebookのログインボタンを使用するページのURLを、クライアントのValid OAuth redirect URIsテキストボックスに貼り付けますOAuth Facebookアプリの設定その後、完全に動作します。

0
Ashif Ali

Set No:リダイレクトURIに厳密モードを使用 See this image

また、有効なOAuthリダイレクトURIを維持:メインのURLと同じ

0
tohid

私の問題は、redirect_uriユーザーがFacebookでログインしていない場合に必要です。

0