4

user_id - url我可以从桌子上拿一双url_like
如前所述,仅有的两列是user_id, url.

我试图通过连接多个表来通过多种方式获取“喜欢”该 URL 的日期,但没有运气。
许多例子之一可能是

选择 url、id、类型、站点 FROM object_url WHERE url IN (
    从 url_like WHERE user_id = {$target} 中选择 url
) 限制 1000",

有什么方法可以获取用户喜欢特定 URL 的日期/时间戳?

如前所述,我什至尝试了不可能的...

4

3 回答 3

2

Facebook 不提供使用喜欢 URL 的时间。而且我认为他们将来不会提供它。它属于 Facebook 隐私政策。

您可以在用户喜欢 url 时触发事件,并通过 ajax 在数据库中插入时间。如果用户不喜欢并再次喜欢它,则更新相同的记录。我以前曾致力于通过Javascript 订阅类似事件。SDK

您可以在此处的文档中找到如何订阅 Like :

FB.Event.subscribe('edge.create',
    function(response) {
        alert('You liked the URL: ' + response);
        //Insert your user id with time when user liked by AJAX  
    }
);
于 2012-11-20T06:36:32.353 回答
2

没有 API 会返回创建点赞的时间 - 点赞的相关/<user id>/feed故事会告诉您此信息,但并非所有点赞都有与之关联的提要故事,查找故事将非常耗时。

如果您正在使用 Like Button 社交插件,您可以跟踪单击 Like 按钮的时间,但您还需要用户的许可才能查看他们的用户 ID 等,以便有效地记录这一点。

于 2012-11-20T19:41:45.030 回答
0

我找到了解决我的问题的解决方案

我依赖 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}"
));
于 2012-11-27T13:01:48.420 回答