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。

我是否必须使用 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 中使用 requestID 所在的 php 代码,并且如果您想使用为同一页面中的其他内容获取的相同 requestID。示例:如果将帖子添加到时间轴,它将在该帖子页面上显示它的请求 ID 号,以防您希望仅在将其添加到时间轴时才显示删除按钮,如果未添加,则不要显示删除按钮使用一个条件语句。

4

1 回答 1

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 ) {
    ...
}
于 2012-05-23T11:57:34.907 回答