I'm developing an app for Facebook in PHP, part of which lists the user's "likes". I would like to add a link next to each like so that the user can manage their likes by deleting them where they see fit.
Facebook mentions this in their graph api docs:
You can delete a like by issuing a DELETE request to /POST_ID/likes (since likes don't have an ID).
But each like must have an id - how else would you delete it?
Has anyone done this before?
Yes, likes don't have an ID in the Graph API. You like or unlike an item by POSTing or DELETEing to {item_id}/likes
, where {item_id}
is replaced by the ID of the object you're liking/unliking.
To find out what the current user has liked (so you can delete them appropriately), you can use the "likes" connection of the User object (docs). So, if you request http://graph.facebook.com/me/likes
, you'll get a list of pages/people/whatever that a user has liked. (Note: this does not include posts or photos or things like that)
This will return an array of data full of items like this:
{
"name": "Very Hungry Caterpillar",
"category": "Artist",
"id": "29956247793",
"created_time": "2009-03-27T15:48:29+0000"
}
The ID in there is not the ID of the like. It is the ID of the object that the user has liked, so in order to un-like it, you have to make a DELETE to http://graph.facebook.com/29956247793/likes
.