Facebook:了解用户何时喜欢URL

Facebook:了解用户何时喜欢URL,facebook,facebook-graph-api,facebook-like,Facebook,Facebook Graph Api,Facebook Like,我可以从类似url的表中获得一对用户id-url。 如前所述,只有两列是user_id和url 我试图通过多种方式获得“喜欢”URL的日期,通过连接多个表,但没有成功。 其中一个例子可能是 SELECT url, id, type, site FROM object_url WHERE url IN ( SELECT url FROM url_like WHERE user_id = {$target} ) LIMIT 1000", 有没有办法获取用户喜欢特定URL的日期/时间戳 正如我

我可以从类似url的表中获得一对用户id-url。 如前所述,只有两列是user_id和url

我试图通过多种方式获得“喜欢”URL的日期,通过连接多个表,但没有成功。 其中一个例子可能是

SELECT url, id, type, site FROM object_url WHERE url IN ( SELECT url FROM url_like WHERE user_id = {$target} ) LIMIT 1000", 有没有办法获取用户喜欢特定URL的日期/时间戳

正如我所说的,我甚至尝试过不可能…

Facebook没有提供使用URL的时间。我不认为他们将来会这样做。它属于Facebook隐私政策

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

您可以在文档中找到如何订阅类似的内容:


没有API会返回创建Like的时间-Like的相关//提要故事会告诉您这些信息,但并非所有Like都有与之相关的提要故事,查找该故事将非常耗时


如果您正在使用Like button社交插件,您可以跟踪Like按钮被单击的时间,但您还需要用户的权限才能查看其用户ID等,以便有效地记录此信息。

我找到了这个解决方案,解决了我的问题

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

这正是我的答案。。在发布我的答案之前,我阅读了所有答案,这很好这并不能解决问题。我想从过去检索所有喜欢的链接。我只能在特定的网站上实现这一点,而不能在全球范围内实现…@Andreyco:起初我告诉过你facebook不会存储用户喜欢的url,也不会给你时间。所以,从你开始储存这些信息的时候起,你就拥有了这些时间信息。这意味着什么?我们只能在特定的网站上实施,而不能在全球范围内实施?@SomnathMuluk Globaly-全球所有网站。本地-仅限我拥有的站点。我只能在我有权访问的网站上跟踪用户行为!是的,Facebook确实会在用户喜欢不同表解决方案中的链接时存储时间。下面是查看登录用户的用户Id所需的任何权限吗?我直到现在才遇到这种情况。可能我以前已经包括了这些权限。我假设用户ID是公共的。您能告诉我查看用户ID所需的权限名称吗?感谢基本权限,即任何安装/授权您的应用程序的人都将授予您访问其基本信息的权限,包括ID。如果他们不授权应用程序,您将无法找到他们是谁。我想我们可以看到任何用户ID的ID和名称。这是公开的。不需要授权该应用程序。对于任何其他信息,您都需要权限。是这样吗?你来自Facebook。你一定知道的比我多。如果我错了,请更正。您可以通过查询任何用户的用户ID来访问他们的一些基本信息。除非他们已授权您的应用程序,否则您将无法确定浏览您网站的用户ID
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}"
));