Andreyco
Andreyco

Reputation: 22872

Facebook: Find out when user liked an URL

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

Upvotes: 4

Views: 1021

Answers (3)

Andreyco
Andreyco

Reputation: 22872

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

Upvotes: 0

Igy
Igy

Reputation: 43816

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.

Upvotes: 2

Somnath Muluk
Somnath Muluk

Reputation: 57806

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

Upvotes: 2

Related Questions