Facebook Graph API - delete like

后端 未结 5 1759
广开言路
广开言路 2020-12-15 12:11

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 b

相关标签:
5条回答
  • 2020-12-15 12:13

    It's not the 'like' that has an ID, it's the post - which is why the api call uses '/POST_ID/likes' as a target - if you delete '/POST_ID', it'll get rid of the post, but if you delete '/POST_ID/likes' it'll get rid of the user's 'like' for that post.

    0 讨论(0)
  • 2020-12-15 12:14

    With OpenGrpah, likes do have ids, it is the single id field in the object returned by an API call to og.likes.

    0 讨论(0)
  • 2020-12-15 12:21

    Likes do have an ID.

    If you look at https://graph.facebook.com/me/likes, you will see that the resulting data does contain an ID value for each.

    {
       "data": [
          {
             "name": "Audi",
             "category": "Consumer_products",
             "id": "96585976469",
             "created_time": "2010-09-27T15:30:15+0000"
          }
        ]
    }
    

    You might want to try the ID's there, I've noticed that the FB API doc sometimes has errors.

    Edit: I think this also may be a terminology issue, as what the doc says doesn't have ID's is probably likes to a user post, and these probably don't really have an ID and can be removed by issuing a delete to the POST_ID/likes. Then there's the likes generated by liking pages and/or external websites via the like-button, and these DO have an ID. Confusing, it is.

    0 讨论(0)
  • 2020-12-15 12:26

    You unlike using access_token which used to make this like.

    Pseudocode:

    to like:

    FacebookGraphApi::getInstance()->setAccessToken('xxx')->post('xxxxxx/likes')
    

    to unlike:

    FacebookGraphApi::getInstance()->setAccessToken('xxx')->delete('xxxxx/likes')
    
    0 讨论(0)
  • 2020-12-15 12:37

    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.

    0 讨论(0)
提交回复
热议问题