2012-10-30 46 views
1

當您單擊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> 

回答

0

如果你正在尋找一個API,它允許你刪除一個Facebook頁面的一樣,這是不可能的。

如果你正在尋找一個API來刪除對象的類似設備(通過URL) - 你可以做一個HTTP DELETE請求/LIKE_INSTANCE_ID這是ID返回到您的應用程序時,您發佈的Open Graph like - 否則它不是可能的

0

你應該能夠「不像」一個對象ID只需做一個HTTP DELETE。使用你的代碼,它會是這個樣子:

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

哪裏回調函數調用時不像操作完成。

1

這讓我瘋狂。 Firefox/Chrome和其他一切顯然不會允許HTTP DELETE ajax調用,除非主機在當前請求期間先前已通信。所以$.ajax{(type: 'delete', ...)}適用於您的服務器url主機,但不是其他任何東西。

解決方法是這樣的:

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