0

我制作了一个页面标签应用程序。应用程序显示一些项目,每个项目都有一个like 按钮。Like 按钮附加到相应的 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) { }. 一个问题是,我怎么知道当前用户点赞了对应的链接?

4

2 回答 2

1

哦,嘘……我没有注意到有一个表url_like(或最近出现的?)。我做了这个 FQL 查询,它返回了所需的响应:

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

奇皮尔科,非常感谢!=)

于 2012-05-17T20:39:36.840 回答
0

您可以尝试重写您的查询以另一种方式进行。查看您的网址是否存在于用户的点赞中。

这对我有用:

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
于 2012-05-17T14:16:06.607 回答