私は私の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 /はこのページのアプリドメインですが、有効なドメインではないというエラーが表示されます
FacebookがJavaScriptからのリクエストを認証できるようにするには、FacebookログインのあるWebサイトの値に値http://localhost/OfferDrive/
を入力する必要がありますSDKは適切な場所から提供されています
Anvesh Saxenaの回答の更新(正しいが、FBアプリのインターフェースが変更されたため、古くなった):
FBアプリの構成で、WebサイトのURLセットを含むWebサイトプラットフォームを追加する必要があります。次に、ウェブサイトのベースドメインに設定したアプリドメインを追加できます(たとえば、http://www.mycoolwebsite.com
などのURLの場合は、mycoolwebsite.com
を使用します)。
重要:これが機能するためには、ローカル開発用にアプリのURLのサブドメインを使用する必要があります。これは、local.mycoolwebsite.com
など、Webサイトの存在しないサブドメインを使用するように開発コンピューターのhostsファイルを変更することで簡単に行えます。ご使用のプラットフォーム(例:mac/windows)の「ホストファイルの編集」をグーグルで検索してください。
設定->詳細、「有効なOAuthリダイレクトURI」にURLを追加します。これは私のために動作します。
My Apps
をクリックし、ドロップダウンからアプリを選択します。App Setting > Basic Tab
に移動し、下部のセクションで[プラットフォームの追加]をクリックします。Site URL
としてログインします(例:mywebsite.com
)http://localhost:8080/myfbsampleapp
http://localhost:8080/myfbsampleapp
からFacebook情報にアクセスできるようになりますMunselljのアップデートのアップデート。
「ウェブサイトURL」オプションにlocalhost:3000を追加し、「App Domains」ボックスを空白のままにするだけで、開発でこれが機能するようになりました。 munselljが述べたように、ウェブサイトプラットフォームを追加したことを確認してください。
これが発生するもう1つの理由は、誤ったappIdを送信した場合です。開発アプリと本番アプリがある場合、これは開発の初期段階で発生する可能性があります。 devとprodにプッシュするためにappIdをハードコーディングすると、これが表示されます。
localhostは、FBがここで許可する特別な文字列です。 localhostでデバッグ環境を設定しなかった場合、私が知る限り、その名前の下にデバッグ環境をプッシュする必要があります。
他の回答から欠落しているのは、oauthコールバックURLとしてlocalhost(または0.0.0.0など)を許可する方法です。ここに説明があります。 開発用にlocalhost:3000をFacebookアプリに追加する方法
古いjavascript sdkでこのエラーが発生する場合があります。ローカルにjavascriptファイルを保存する場合。更新してください。私は常にfacebookサーバーからロードすることを好みます。