使用JS SDK删除时间轴上的操作

时间:2012-05-13 16:14:38

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-timeline

我有一个'添加到时间轴'按钮,我已经可以使用其他功能将帖子添加到时间轴,但现在我希望能够获取动作的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。

我是否必须使用PHP SDK才能获取requestID?这是我正在使用的其他代码:

            <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; ?>

这样我可以使用我的javascript中的php代码,其中requestID是,并且你想要使用在同一页面中为其他东西获得的相同requestID。示例:如果帖子被添加到时间轴,它将在该帖子页面上显示它的请求ID号,如果只有添加到时间线时才显示删除按钮,如果没有添加,则不显示删除按钮条件陈述。

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点:

  • 将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 ) {
    ...
}