Facebook: Find out when user liked an URL

那年仲夏 提交于 2019-12-04 03:55:25

问题


I can get pair of user_id - url from url_like table.
The only two columns are, as mentioned, user_id, url.

I tried to get get date of 'liking' the URL by many ways, by connecting multiple tables, but no luck.
One of many examples might be

SELECT url, id, type, site FROM object_url WHERE url IN (
    SELECT url FROM url_like WHERE user_id = {$target}
) LIMIT 1000",

Is there any way how to get date/timestamp of when user liked particular URL?

As said I even tried impossible...


回答1:


Facebook doesn't offer time when use liked an URL. And I don't think they will be giving it in future. It comes under Facebook privacy policy.

You can trigger event when user liked url and insert time in your database by ajax. If user unlike and like it again then update same records. I have previously worked on subscribing like event by Javascript. SDK

You can find how to subscribe to an Like in the the documentation here:

FB.Event.subscribe('edge.create',
    function(response) {
        alert('You liked the URL: ' + response);
        //Insert your user id with time when user liked by AJAX  
    }
);



回答2:


There is no API which will return the time a Like was created - the associated /<user id>/feed story for a like will tell you this information, but not all Likes have feed stories associated with them, and finding the story will be extremely time consuming.

You could track when the Like button is clicked if you're using the Like Button social plugin, but you'd also need the user's permission to see their user ID, etc, in order to log this usefully.




回答3:


I found this solution that solves my problem

I rely on FQL

public static $since = '2012/01/01';
...
...

// $target1 stands for "me", it has value of my FB ID
// So I am selecting all links I liked in past year
$object_id_raw = static::$facebook->api(array(
    'method'    => 'fql.query',
    'query' => "SELECT link_id FROM link WHERE owner = {$target1} AND created_time > ".strtotime(static::$since)
));
// Just extracting IDs for later usage
$object_id = array();
foreach($object_id_raw as $oid):
    array_push($object_id, $oid['link_id']);
endforeach;

// - friendId stands for FB ID of my friends
// This query is selecting from links I liked,that means we have them liked both...
// This API call returns object ID's (ID's of links). Do whatever you want with them...
$result = static::$facebook->api(array(
    'method'    => 'fql.query',
    'query' => "SELECT object_id FROM like WHERE object_id IN ('".implode("','", $object_id)."') AND user_id = {$friendId}"
));


来源:https://stackoverflow.com/questions/13417918/facebook-find-out-when-user-liked-an-url

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!