7

ここのチュートリアルに従おうとしています。しかし、有効で正しいと思われるパラメーターを使用して FB.init(...) を呼び出すと、次のエラー メッセージが表示されます。アプリの設定. ウェブサイトの URL またはキャンバスの URL と一致する必要があります。または、ドメインがアプリのドメインのいずれかのサブドメインである必要があります. " このエラーを検索しました ( 1 2 ) が、他の誰もが単に設定するだけで問題が発生しているようです. Facebook アプリケーション構成のサイト URL。私はこれを正しく設定したと 99% 確信していますが、明らかに何か間違ったことをしています。

これが問題を引き起こしている私のコードです。プライバシー上の理由から、情報の一部を「XXX」と「YYY」に置き換えました。

<html>
<body>
<h1>Facebook</h1>
<div id="fb-root"></div>
<script>
  // Additional JS functions here
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'XXX', // App ID
      channelUrl : '//YYY.com/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

  };//window.fbAsyncInit()

  // Load the SDK Asynchronously
  (function(d){
     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 = "http://connect.facebook.net/en_US/all/debug.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));
</script>
</body>
</html>

チュートリアルの例から、コードの下部近くにある js.src パラメーターを変更する必要があることに注意してください。これが私の問題を引き起こしているとは思えませんが、チュートリアルのコードの品質に懸念が生じます。(チュートリアルのコードが動かないのは嫌だ - 何がポイントなの?)

上記のコードで、ドメイン名のルートを「YYY」に置き換えたことがわかります。この単純な置換を維持するために、ここに私の Facebook アプリケーション構成からの値の一部を示します。

App ID: "XXX"
Display Name: "[blah blah blah]"
Namespace: "YYY"
App Domains: "YYY.com"
Sandbox Mode: "Enabled"
Canvas Page: "http://apps.facebook.com/YYY"
Canvas URL: "http://YYY.com/canvas/"

これについて私を助けるためにあなたが必要とするかもしれない他の詳細がわかりません. リストされている URL はすべて機能しています。助けてくれてありがとう!

4

1 に答える 1

7

チュートリアルの例から、コードの下部近くにある js.src パラメーターを変更する必要があることに注意してください。

なんで?ローカル Web サーバー経由で HTTP 経由ではなく、ファイル システムからブラウザーでページを呼び出すだけでテストしていますか?

後者の場合、Facebook がリクエストの発信元を確認できる「ドメイン」がありません。ローカル Web サーバーをセットアップし、それを介してドキュメントを呼び出し、もう一度やり直してください。

于 2012-11-29T11:05:28.567 に答える