Facebook 我如何知道当前用户喜欢相应的链接?

Facebook 我如何知道当前用户喜欢相应的链接?,facebook,facebook-like,facebook-fql,Facebook,Facebook Like,Facebook Fql,我制作了一个页面标签应用程序。应用程序显示一些项目,每个项目都有一个类似的按钮。类似于附加到相应url项的按钮。我需要向喜欢的用户显示那些收集了10+个喜欢的元素中的一些文本。 因此,我编写了以下代码: // Get a link statistics $link_stat = $fb->api( array( 'method' => 'fql.query', 'query' => 'SELECT like_count FROM link

我制作了一个页面标签应用程序。应用程序显示一些项目,每个项目都有一个类似的按钮。类似于附加到相应url项的按钮。我需要向喜欢的用户显示那些收集了10+个喜欢的元素中的一些文本。 因此,我编写了以下代码:

// Get a link statistics
$link_stat = $fb->api(
    array(
        'method' => 'fql.query',
        'query' => 'SELECT like_count FROM link_stat WHERE url="http://myurl.com/item1.html"'
    )
);

if ((int)$link_stat[0]['like_count'] > 10)
{
    //Get like by current user_id and link object_id
    $like = $fb->api(
        array(
            'method' => 'fql.query',
            'query' => 'SELECT user_id, object_id FROM like WHERE user_id=me() AND object_id IN (SELECT id FROM object_url WHERE url="http://myurl.com/item1.html")'
        )
    );

    var_dump($like);
}
我在请求权限*user_likes*和*read_stream*时运行此代码,但它输出
array(0){}

一个问题是,我如何知道当前用户喜欢相应的链接?

您可以尝试重写查询,以另一种方式进行查询。查看您的url是否存在于用户的收藏夹中

这对我很有用:

SELECT url, id, type, site FROM object_url WHERE id IN (SELECT object_id FROM like 
       WHERE user_id=me()) AND strpos(url, "myurl.com/item1") >= 0

哦,嘘……我没有注意到有一张桌子(或者最近出现的?)。 我进行了此FQL查询,它返回了所需的响应:

SELECT user_id FROM url_like WHERE user_id = me() AND url = "http://myurl.com/item1.html"

Cpilko,非常感谢!=)

所以,有一个问题:我喜欢一些项目,但它们没有出现在我的喜欢列表中。所有链接都是外部的和公共的。这总是一个问题。FQL对其返回的内容有限制,Facebook并不总是告诉您这些限制是什么。您可以尝试将
LIMIT 99999
添加到内部查询中,但不允许添加。您还可以尝试通过Graph API方法而不是FQL来请求此操作。这些查询的局限性似乎是Facebook的一个“特色”。他们似乎有意限制
like
表返回给第三方应用程序的数据量,特别是为了阻止人们将内容隐藏在like按钮后面。