0

私のエラーを見つけることができますか?

グラフを開くアクションを承認するのに本当に苦労しています。私は人々に写真 (オブジェクト) を共有 (アクション) してもらいたいと思っており、ユーザー メッセージと明示的に共有された機能を要求しています。Facebook から返ってきた最新のコメントは次のとおりです。

アプリ内のエラーのため、このアクションをテストできません。Auth Dialog Preview User でテストしてアクションが正しく機能することを確認し、再送信してください。

あまり役に立ちません!

Auth Dialog Preview User でアクションをテストしたところ、問題なく動作しました。また、応答コード 200 を返したオブジェクト デバッガーでページをテストしました。

以下は、テストページで使用しているコードです。エラーが表示されないため、誰かがエラーの場所を指摘できることを望んでいました。

<head>
meta tags here

<script type="text/javascript">
  function Share()
  {
      FB.api(
        '/me/NAMESPACE:share&photo=TEST PAGE URL&message=Cool photos&fb:explicitly_shared=true&access_token=ACCESS TOKEN','POST',  function(response) {
            if (!response || response.error) {
                alert('Error occured');
              } else {
                alert('Post was successful! Action ID: ' + response.id);
              }
        });
    }
  </script>


<script type="text/javascript">
window.fbAsyncInit = function() {
FB.Canvas.setAutoGrow();
}
// Do things that will sometimes call sizeChangeCallback()
function sizeChangeCallback() {
FB.Canvas.setSize({ width: 810, height: 1180 });
}
</script>
</head>
<body>
<div id="fb-root"></div>
    <script>
      // 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 = "//connect.facebook.net/en_US/all.js";
         ref.parentNode.insertBefore(js, ref);
       }(document));

      // Init the SDK upon load
      window.fbAsyncInit = function() {
        FB.init({
          appId      : 'APP ID', // App ID
          channelUrl : '//CHANNEL FILE URL', // Path to your Channel File
          status     : true, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          xfbml      : true,  // parse XFBML
          oauth      :true
        });

        // listen for and handle auth.statusChange events
        FB.Event.subscribe('auth.statusChange', function(response) {
          if (response.authResponse) {
            // user has auth'd your app and is logged into Facebook
            FB.api('/me', function(me){
              if (me.name) {
                document.getElementById('auth-displayname').innerHTML = me.name;
              }
            })
            document.getElementById('auth-loggedout').style.display = 'none';
            document.getElementById('auth-loggedin').style.display = 'block';
          } else {
            // user has not auth'd your app, or is not logged into Facebook
            document.getElementById('auth-loggedout').style.display = 'block';
            document.getElementById('auth-loggedin').style.display = 'none';
          }
        });

        // respond to clicks on the login and logout links
        document.getElementById('auth-loginlink').addEventListener('click', function(){
          FB.login();
        });
        document.getElementById('auth-logoutlink').addEventListener('click', function(){
          FB.logout();
        }); 
      } 

      function loginUser() {    
     FB.login(function(response) { }, {scope:'publish_actions, email'});     
     }
    </script>

 <div id="auth-status">
        <div id="auth-loggedout">
          <a href="#" id="auth-loginlink"><img src="login_btn.png"></a>
        </div>
        <div id="auth-loggedin" style="display:none">

      </div>
    </div>

<form>
    <input class="shr-btn" type="button" value="" onClick="Share()" />
  </form>

</body>

どんな助けでもありがたく受け取られます。

どうもありがとう

D


ああああ。現在、Facebook から次のような回答がありました。

コードは現在、ストリーム ストーリーを公開するように構成されています。テスト ユーザーがアクションをトリガーしたときに開いたグラフ ストーリーが生成されるように、コードを変更する必要があります。適切な変更を加えて再送信してください。

誰かが私が間違っていることを教えてもらえますか? コードはオープン グラフ ストーリーを公開するように設定されていると思っていましたが、どうやら今のようです。

誰かが私が間違っていることを指摘できれば、私は永遠に感謝します.

どうもありがとう。

D

4

2 に答える 2

0

これは、次の行で追加のパラメーターを渡す方法と関係があるようです。

'/me/NAMESPACE:share&photo=TEST PAGE URL&message=Cool photos&
fb:explicitly_shared=true&access_token=ACCESS TOKEN','POST',  function(response)

あなたは本当にもっと何かしたい:

FB.api('/me/NAMESPACE:share', 'post', 
{ photo : 'TEST_PAGEURL', message : 'Cool photos' }, function(response));

ここで重要なことは、関数の 3 番目のパラメーターとしてカスタム JSON コンテンツを含めることです。古い実装であるため、URL パラメーター メソッドがそのようなメッセージをトリガーしているようです。

于 2012-10-31T21:23:55.587 に答える