1

「タイムラインに追加」ボタンがあり、別の関数を使用してタイムラインに投稿を追加できますが、アクションの requestID を取得して、別の JavaScript 関数から削除できるようにしたいと考えています。私はどこでも検索していますが、ID を取得する方法を学ぶことができるように良い例を見つけることができません。その方法についてはまだ混乱しています。これはコードです:

       <script type="text/javascript">
       function deleteRead(requestId)
       {        
       FB.api(
             requestId,
               'delete',
                function(response) {
                 if (!response || response.error) {
                        alert('error...');
                 } else {
                     alert('Successfully Deleted!');
                     }
                  });
             }</script>

投稿のアクション ID 番号を直接追加すると、タイムラインで投稿を削除できます。ただし、各投稿のIDを自動的に取得する場所に作成する必要があります。

requestID を取得するには、PHP SDK を使用する必要がありますか? これは私が使用している他のコードです:

            <div id="fb-root"></div>
             <script type="text/javascript">
              window.fbAsyncInit = function() {

                 FB.init({
                 appId      : 'I-have-my-app-ID-here', // App ID
                 status     : true, // check login status
                 cookie     : true, // enable cookies to allow the server to access the session
                 xfbml      : true  // parse XFBML
                 }); 

             };

              // Load the SDK Asynchronously
             (function(d){
                 var js, id = 'facebook-jssdk'; 
                 if (d.getElementById(id)) {return;}
                 js = d.createElement('script'); js.id = id; js.async = true;
                 js.src = "//connect.facebook.net/en_US/all.js";
                 d.getElementsByTagName('head')[0].appendChild(js);
                  }(document));   
                 </script>

さらに良いことに、PHP を介して requestID を取得し、それを変数に渡す方法はありますか? 投稿に応じて (タイムラインに追加されている場合)、次のような「requestID」に置き換えることができます。

             <?php echo $requestID; ?>

このようにして、requestID が存在する JavaScript 内で php コードを使用できます。また、同じページ内の別の目的で取得した同じ requestID を使用したい場合に備えて。例: 投稿がタイムラインに追加された場合、その投稿ページにリクエスト ID 番号が表示されます。タイムラインに追加された場合にのみ削除ボタンを表示し、追加されていない場合は削除ボタンを表示しないでください。条件文。

4

1 に答える 1

0

これには 2 つの方法があります。

  • 各アクションの ID をデータベースに保存します。アクションは Facebook から削除される可能性があり、データベースとの同期が失われる可能性があるため、これはアイデアではありません。
  • ユーザーのアクションをリアルタイムでクエリし、それを使用して削除するアクションのリストを表示します。これが好ましい。

サンプルコード:

// get activity from Facebook
$actions = $facebook->api('/me/' . $action_id );
// get ID of last action
echo $actions[0]['id'] );

次に、上記から投稿の ID (例: ) を取得し、$actions[0]['id']それを JavaScript 関数に渡すか、PHP 関数を作成してアクションを削除できます。$actions必要に応じて、特定のアクションが既に存在するかどうかをループして検索し、URL で一致させることができます。

if ( $actions[0]['data']['article']['url'] == $current_url ) {
    ...
}
于 2012-05-23T11:57:34.907 に答える