本文介绍了使用 FQL 获取用户的所有喜欢(全部)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 FQL 获得用户的所有喜好.以下是我的研究,包括我尝试过的内容以及每次尝试时遇到的问题.

I'm trying to get ALL of a user's likes with FQL. Following is my research including what I've tried and the problems with each attempt.

1) 最简单的方法是在 uid 上查询表.所以这会在其他人的信息流上返回 57 个(对我来说)喜欢.

1) The most simple method would be to query the table on the uid. So this returns 57 (for me) likes on other's stream.

SELECT object_id, post_id, user_id
FROM like
WHERE user_id = me()

XML 看起来像这样(注意无法解释的缺少 post_id)

XML looks like this (note unexplained absence of post_id)

<like>
    <object_id>10150695050005313</object_id>
    <post_id></post_id>
    <user_id>xxxxxxxxxxx</user_id>
</like>

以上似乎是一个合乎逻辑的步骤,但 Facebook 不索引 user_id 字段 所以我不能使用下面的代码来获得更多的细节.此代码不起作用.

The above seems like a logical step, but Facebook doesn't index the user_id field so I can't use the following code to get further details. This code does not work.

SELECT post_id, message
FROM stream
WHERE post_id IN (
    SELECT object_id, post_id, user_id
    FROM like
    WHERE user_id = me()
)

2) 使用 Graph API:/me/likes/检索 95 个粉丝页面上的信息,但不检索照片、视频、链接或离线内容.完整网址是:https://graph.facebook.com/me/likes?access_token=

2) Using the Graph API: /me/likes/ retrieves information on 95 fan pages, but not from photos, videos, links, or offline content. The full url is: https://graph.facebook.com/me/likes?access_token=

例如:

{
"data": [
  {
     "name": "BStU",
     "category": "Organization",
     "id": "136978696319967",
     "created_time": "2011-06-29T12:09:17+0000"
  },
  {
     "name": "Euchre",
     "category": "Interest",
     "id": "112355915446795",
     "created_time": "2011-06-29T12:06:07+0000"
  },

3) 此 FQL 返回与上述代码相同的 95 个粉丝页面:

3) This FQL returns the same as the above code, 95 fan pages:

SELECT page_id,name
FROM page
WHERE page_id IN (
    SELECT page_id
    FROM page_fan
    WHERE uid=me()
)

总而言之,理想情况下,无论对象如何,我都可以为用户返回每个赞.不过,如果我可以通过一个 FQL 查询将所有粉丝页面和流帖子与数据一起返回,我愿意继续推进.

So to summarize, ideally I would be able to return every like for a user, regardless of the object. I'm willing to move forward with a mixture of fan pages and stream posts though, if I can return them all, along with the data, with one FQL query.

有什么建议吗?我要补充一点,我试图在不使用 REST API 的情况下执行此操作,因为它会降级(有一天?),因此使用 fql.multiquery 不是一个选项.

Any suggestions? I will add that I'm trying to do this without using the REST API because it is going to be degraded (someday?) so therefore using fql.multiquery is not an option.

推荐答案

我已经能够使用 FQL 来获得一些(但不是全部)流的赞.请参阅:http://facebook.stackoverflow.com/questions/8496980/fql-like-table-not-returning-any-results

I've been able to use FQL to get at some, but not all, of the stream likes. See: http://facebook.stackoverflow.com/questions/8496980/fql-like-table-not-returning-any-results

我得到的查询是:

1) 为我提供页面提要上我喜欢的流项目:

1) Gives me stream items I've liked on page feeds:

 SELECT post_id, source_id, message
   FROM stream
  WHERE source_id
     IN (SELECT target_id FROM connection WHERE source_id=me() and is_following=1)
    AND likes.user_likes=1
  LIMIT 10

2) 从我自己发布的供稿中向我提供我喜欢的流项目:

2) Gives me stream items I've liked from my feed that I myself posted:

 SELECT post_id, source_id, message
   FROM stream
  WHERE source_id=me()
    AND likes.user_likes=1
  LIMIT 10

令人讨厌的是,我无法从事件流项目、朋友流项目、群组流项目等的流项目中获得用户喜欢.即使我已接受该用户的所有权限.这不像我在询问秘密信息.当然,用户可以通过我的应用程序喜欢和删除对流项目的喜欢.只是我无法查询到用户喜欢的当前流项目的完整列表.

What's annoying is I cannot get user likes from stream items for Event stream items, Friend stream item, Group stream items, etc. Even though I have every permissions accepted for that user. It's not like I'm asking for secret information. As a matter of course, the user can like and remove likes of stream items via my app. It's just that I cannot query a complete list of the current stream items that have been liked by the user.

这篇关于使用 FQL 获取用户的所有喜欢(全部)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-26 21:52