2

更新されたコード:

承認待ちのオープングラフアクションがあります。Facebookから次のようなメッセージが届きました。

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

公開アクションに関するすべてのチュートリアルに従い、テストはすべてアプリのタイムラインに正常に公開されました。問題は、私のアプリ(ページタブ)がすでに稼働していることです。そのため、アプリを更新して、これらの新しいアクションを追加したいと思います。

Facebookは、現在のページタブ(fmbl posttofeed共有ボタンを使用している)のコードを見ていますか、それとも新しいアクションで実行したテストを見ていますか?誰かがこれに光を当てることができますか?

これは、アクションを公開するために使用したテストページにあるコードです。




        
      関数postShare()
      {{
          FB.api(
            '/ me / namespace:sh​​are'、
            '役職'、
            {写真:'https://domain.com'}、
            関数(応答){
               if(!response || response.error){
                  alert('エラーが発生しました:' + response.error);
               } そうしないと {
                  alert('共有に成功しました!アクションID:' + response.id);
               }
            });
      }
      

         
        
          //SDKを非同期でロードします
          (関数(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);
           }(資料));

          //ロード時にSDKを初期化します
          window.fbAsyncInit = function(){
            FB.init({
              appId:'APP ID'、//アプリID
              channelUrl:'// channel url'、//チャンネルファイルへのパス
              status:true、//ログインステータスを確認する
              cookie:true、//サーバーがセッションにアクセスできるようにcookieを有効にします
              xfbml:true//XFBMLを解析します
            });

            //auth.statusChangeイベントをリッスンして処理します
            FB.Event.subscribe('auth.statusChange'、function(response){
              if(response.authResponse){
                //ユーザーがアプリを認証し、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';
              } そうしないと {
                //ユーザーがアプリを認証していないか、Facebookにログインしていません
                document.getElementById('auth-loggedout')。style.display ='block';
                document.getElementById('auth-loggedin')。style.display ='none';
              }
            });

            //ログインリンクとログアウトリンクのクリックに応答します
            document.getElementById('auth-loginlink')。addEventListener('click'、function(){
              FB.login();
            });
            document.getElementById('auth-logoutlink')。addEventListener('click'、function(){
              FB.logout();
            });
          }

          関数loginUser(){    
         FB.login(function(response){}、{スコープ:'publish_actions、email'});     
         }
        



          
            
          

オープングラフストーリーではなくストリームストーリーを公開するようにこれがどのように構成されているかわかりませんか?誰かがこれを手伝ってもらえますか?それは私を狂気に駆り立てており、私がしていることがアクションを公開していないことを示唆するものをそこに見つけることができません。

ただし、彼らが私のアクションをレビューしているときに、ライブアプリのコードを見ている場合は、もちろん、まだ承認されていないため、オープングラフストーリーをトリガーするように設定されていません。

どんな助けでも大歓迎です。

どうもありがとう

4

4 に答える 4

1

あなたの質問は完全に明確ではありませんが、publish_actionspublish_stream Permissionsの両方で Open Graph アクションを投稿できます。ただし、publish_stream許可は他の多くの公開タイプをカバーし、オプションでもあります。ユーザーがその許可を削除すると、それらのユーザーの OG アクションを投稿できなくなります。

認証コードを更新してpublish_actions代わりにリクエストする / 同様にリクエストする

于 2012-10-02T19:27:35.900 に答える
0

ついにそれが機能するようになりました。手順:1。「Publish_action」権限を追加しました2. FB Graph APIExplorerで正常にテストしました3.Javascriptを変更しました(postShare()上記の方法と同様のコード)

FB.api('/me/namespace:purchase',
       'post',
       { product: 'samples.ogp.me/367683346642550'; },
       function(response) {
           if (!response || response.error) {
               alert('Error occured'+response.error);
           } else {
               alert('Post was successful! Action ID: ' + response.id);
           }
       });
于 2012-10-04T18:38:58.550 に答える
0

Facebook テスターは、本番サーバーで実行されている実際のコードを必要とします。Facebook テスト ユーザーを使用して、アクションを送信したときに説明したすべての手順を実行します。すでに公開されているストーリーは使用しません。彼らはおそらく「Open Graph Test User」を使用するでしょう。

ここには 2 つのオプションがあります。

  1. すべてのユーザーでアクションを公開してみてください。うまくいかない場合は、ストリームを公開します (テスト ユーザーはアクションを公開し、実際のユーザーは古いコードを使用して公開するようにします)。

    - - また - -

  2. ユーザーがテスト ユーザーであるかどうかを (テスト ユーザー ID を記録して) 識別し、新しいコードを提供します。

とにかく、実際のアクション フローは本番サーバーで実行できる必要があります。

于 2013-02-22T15:07:30.530 に答える
0

オープングラフストーリーを使用している場合、基本的にアルバムやその他の種類の投稿に何かを投稿することはできません。たとえば、次のことは許可されていません。

            $data = $facebook->api('/me/photos', 'post', $args);//disallowed                
            $facebook->api(
              'me/invig-test:share',
              'POST',
              array(
                    'app_id' => $configParam['appId'],
                    'type' => "test:photo",
                    'photo' => "http://samples.ogp.me/574859819237737",                   
                    'title' => "a photo",
                    'image[0][url]'=>"http://www.testapp.com/".$imgFile,
                    'image[0][user_generated]'=>'true',
                    'message' => $comments,                   
                    'fb:explicitly_shared'=>true,
                )
              );

代わりに、「共有」のみを行います。

            $facebook->api(
              'me/invig-test:share',
              'POST',
              array(
                    'app_id' => $configParam['appId'],
                    'type' => "test:photo",
                    'photo' => "http://samples.ogp.me/574859819237737",                   
                    'title' => "a photo",
                    'image[0][url]'=>"http://www.testapp.com/".$imgFile,
                    'image[0][user_generated]'=>'true',
                    'message' => $comments,                   
                    'fb:explicitly_shared'=>true,
                )
              );
于 2013-09-28T22:31:01.737 に答える