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>
4

3 に答える 3

1

これは私を狂わせた。Firefox / Chromeとおそらく他のすべてのものは、ホストが現在のリクエスト中に以前に通信していない限り、HTTPDELETEajax呼び出しを許可しないようです。したがって$.ajax{(type: 'delete', ... )}、サーバーのURLホストでは機能しますが、それ以外では機能しません。

回避策は次のようなものです。

$.ajax({ 
  url: "https://graph.facebook.com/" + FB_ACTION_ID,
  type: 'post',
  data: { access_token: ACCESS_TOKEN,
          'method': 'delete',
          '_method' : 'delete' }
  })
于 2013-01-24T23:47:10.920 に答える
0

Facebookページのいいねを削除できるAPIを探している場合、これは不可能です。

オブジェクトのLikeを(URL経由で)削除するAPIを探している場合は、OpenGraphを投稿したときにアプリに返されたIDであるHTTPDELETEリクエストを作成できます/LIKE_INSTANCE_IDそれ以外の場合は不可能です。

于 2012-10-30T02:52:54.530 に答える
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 は、異なる操作が完了したときに呼び出す関数です。

于 2012-10-30T03:36:43.070 に答える