如何取消其他网站上的喜欢

时间:2012-10-30 00:55:56

标签: facebook api facebook-like

点击Like按钮https://graph.facebook.com/object_id/likes来电时。 要取消Like我该怎么办?

我尝试了以下内容:

<code>
<script>
function doLike(objectId) {
    $.ajax({
       url: 'https://graph.facebook.com/'+objectId+'/likes',
       type: 'post',
       data: {
           access_token: '....'
       }
    });
}

function doCancel(objectId) {
    $.ajax({
       url: '???',
       type: 'post',
       data: {
           access_token: '....'
       }
    });
}
</script>

<input onclick="doLike('...')">Like</button>
<input onclick="doCancel('...')">Cancel</button>
</code>

3 个答案:

答案 0 :(得分:1)

这让我疯了。 Firefox / Chrome以及其他所有内容显然都不允许HTTP DELETE ajax调用,除非主机先前已在当前请求期间进行通信。因此$.ajax{(type: 'delete', ... )}适用于您的服务器网址主机,但不适用于其他任何内容。

解决方法类似于:

$.ajax({ 
  url: "https://graph.facebook.com/" + FB_ACTION_ID,
  type: 'post',
  data: { access_token: ACCESS_TOKEN,
          'method': 'delete',
          '_method' : 'delete' }
  })

答案 1 :(得分:0)

如果您正在寻找允许您删除喜欢Facebook页面的API,那么这是不可能的。

如果您正在寻找一个API来删除对象的喜欢(通过URL) - 您可以向/LIKE_INSTANCE_ID发出HTTP DELETE请求,这是您在发布{{}时返回给您的应用的ID 3}} - 否则就不可能

答案 2 :(得分:0)

您应该只需通过执行HTTP DELETE就可以“不像”对象ID。使用您的代码,它看起来像这样:

function doCancel(objectId) {
    $.ajax({
       url: 'https://graph.facebook.com/'+objectId+'/likes',
       type: 'delete',
       data: {
           access_token: '....'
       }
    });
}

或者,使用Facebook Javascript SDK,您可以在其中执行以下操作:

FB.api("/" + objectId + "/likes", 'delete', callback);

其中callback是在不同操作完成时调用的函数。