web-dev-qa-db-ja.com

指定されたURLはアプリケーション構成で許可されていません

私は私のHTMLページでこれを使用しています...

<script>     
window.fbAsyncInit = function() {
    // init the FB JS SDK
    FB.init({
      appId      : 'xxxxxxxxxxxxxx', // App ID from the App Dashboard
      status     : true, // check the login status upon init?
      cookie     : true, // set sessions cookies to allow your server to access the session?
      xfbml      : true  // parse XFBML tags on this page?
    });

    // Additional initialization code such as adding Event Listeners goes here
};

// Load the SDK's source Asynchronously
// Note that the debug version is being actively developed and might 
// contain some type checks that are overly strict. 
// Please report such bugs using the bugs tool.
(function(d, debug){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js";
     ref.parentNode.insertBefore(js, ref);
}(document, /*debug*/ false));

 function shareOnFb(action, msg){
    FB.ui({ 
        method: action, 
        message: msg
    });
 }
</script>

fBメソッドを呼び出すたびに、コンソールでこれが表示されます

指定されたURLは、アプリケーション構成によって許可されていません。指定された1つ以上のURLは、アプリの設定によって許可されていません。ウェブサイトのURLまたはキャンバスのURLと一致するか、ドメインがAppsドメインのいずれかのサブドメインである必要があります。

これは私のfbアプリの設定です。ここで何かを変更する必要がありますか。

localhost/OfferDrive /はこのページのアプリドメインですが、有効なドメインではないというエラーが表示されます

fb app settings

61
1Mayur

FacebookがJavaScriptからのリクエストを認証できるようにするには、FacebookログインのあるWebサイトの値に値http://localhost/OfferDrive/を入力する必要がありますSDKは適切な場所から提供されています

60
Anvesh Saxena

Anvesh Saxenaの回答の更新(正しいが、FBアプリのインターフェースが変更されたため、古くなった):

FBアプリの構成で、WebサイトのURLセットを含むWebサイトプラットフォームを追加する必要があります。次に、ウェブサイトのベースドメインに設定したアプリドメインを追加できます(たとえば、http://www.mycoolwebsite.comなどのURLの場合は、mycoolwebsite.comを使用します)。

New FB Settings Screenshot

重要:これが機能するためには、ローカル開発用にアプリのURLのサブドメインを使用する必要があります。これは、local.mycoolwebsite.comなど、Webサイトの存在しないサブドメインを使用するように開発コンピューターのhostsファイルを変更することで簡単に行えます。ご使用のプラットフォーム(例:mac/windows)の「ホストファイルの編集」をグーグルで検索してください。

44
munsellj

設定->詳細、「有効なOAuthリダイレクトURI」にURLを追加します。これは私のために動作します。

18
  • 開発者向けダッシュボードダッシュボード に移動します
  • My Appsをクリックし、ドロップダウンからアプリを選択します。
    (アプリをまだ作成していない場合は、[新しいアプリを追加]を選択して新しいアプリを作成します)。
  • App Setting > Basic Tabに移動し、下部のセクションで[プラットフォームの追加]をクリックします。
  • [ウェブサイト]を選択し、ウェブサイトを追加してSite URLとしてログインします(例:mywebsite.com
  • ローカルでテストする場合は、アプリのローカルホストURLを指定することもできます。
    例えば。 http://localhost:8080/myfbsampleapp
  • 変更を保存すると、http://localhost:8080/myfbsampleappからFacebook情報にアクセスできるようになります
9
Lucky
  1. 左上隅にあるアプリ名のメニュー項目から、テストアプリを作成します。
  2. 新しいテストアプリの設定セクションで、WebサイトのURLに「 http:// localhost:30 」を追加し、アプリドメインに「localhost」を追加します。
  3. 新しいFacebook APP IDでアプリを更新する
  4. Facebook sdk v2.2またはアプリの最新のものを使用します。
2
user215097

Munselljのアップデートのアップデート。

「ウェブサイトURL」オプションにlocalhost:3000を追加し、「App Domains」ボックスを空白のままにするだけで、開発でこれが機能するようになりました。 munselljが述べたように、ウェブサイトプラットフォームを追加したことを確認してください。

2
MarcB

これが発生するもう1つの理由は、誤ったappIdを送信した場合です。開発アプリと本番アプリがある場合、これは開発の初期段階で発生する可能性があります。 devとprodにプッシュするためにappIdをハードコーディングすると、これが表示されます。

1
Craig

localhostは、FBがここで許可する特別な文字列です。 localhostでデバッグ環境を設定しなかった場合、私が知る限り、その名前の下にデバッグ環境をプッシュする必要があります。

1
pfrank

他の回答から欠落しているのは、oauthコールバックURLとしてlocalhost(または0.0.0.0など)を許可する方法です。ここに説明があります。 開発用にlocalhost:3000をFacebookアプリに追加する方法

1
light24bulbs

古いjavascript sdkでこのエラーが発生する場合があります。ローカルにjavascriptファイルを保存する場合。更新してください。私は常にfacebookサーバーからロードすることを好みます。

1
Md. Yusuf