Facebook graph api 获取Facebook“;例如;计算我域中的每一页

Facebook graph api 获取Facebook“;例如;计算我域中的每一页,facebook-graph-api,facebook-fql,Facebook Graph Api,Facebook Fql,我已经将Facebook的“喜欢”按钮集成到我网站的许多页面中。我想在列表中显示我网站上最“受欢迎”的页面,但我不知道如何在一个请求中从Facebook获取这些数据。到目前为止,我已经能够使用以下FQL查询获得各个页面的“Like”计数: 然而,在我的网站上一次统计一个页面的数量是不可行的。除了有大量的页面外,新的页面也在不断地被创建(新的用户档案、新的博客和博客文章等),这将使获取我的网站的完整统计数据成为一个复杂的过程,并且需要调用Facebook的API数千次 有没有办法计算我的域中的每个

我已经将Facebook的“喜欢”按钮集成到我网站的许多页面中。我想在列表中显示我网站上最“受欢迎”的页面,但我不知道如何在一个请求中从Facebook获取这些数据。到目前为止,我已经能够使用以下FQL查询获得各个页面的“Like”计数:

然而,在我的网站上一次统计一个页面的数量是不可行的。除了有大量的页面外,新的页面也在不断地被创建(新的用户档案、新的博客和博客文章等),这将使获取我的网站的完整统计数据成为一个复杂的过程,并且需要调用Facebook的API数千次

有没有办法计算我的域中的每个页面在一个请求中被“喜欢”的次数?或者仅仅是前10个最“喜欢”的页面,或者类似的东西?

1)在fb上创建一个假用户,该用户只喜欢来自您域的页面,或者通过其他方式将您的URL保存在fb中,并可能稍后通过FQL获取它们

2) 查询:


3) 别忘了每一个像计数一样递减1;),排序并显示实际上我会这样做:

$arrayOfPages = array('url1', 'url2', 'url3');

$listOfPages = implode(',', $arrayOfPages);

SELECT share_count, like_count, comment_count, total_count, url
FROM link_stat
WHERE url IN ($listOfPages)

这将为您提供URL作为唯一标识符的所有数据,而不必违反Facebook针对假冒用户的政策。您可以通过对站点数据库的查询动态创建
$arrayOfPages
变量。

显然FQL中没有“LIKE”。这是我的第一个建议

尽管您可以使用“IN”操作符,如下所示:

选择共享计数,如计数、评论计数、总数计数
从链接_stat
“在哪里”http://www.mysite.com/“在url中
按同类计数订购
限制10;

也许您可以在每次查看页面时查询每个页面的赞数。这并不精确,但请记住,最受欢迎的页面将被更频繁地浏览,这可能就足够了


此外,您可以使用批处理每隔两个小时查询所有页面或至少前N个上次创建页面的赞数。大多数情况下,您不会得到正确的结果,但在大多数情况下,您的用户不需要正确的结果,而是需要足够好的近似值

很难在一次查询中获得你所有页面的FB赞,但你可以获得网站每个页面的个人分享数。除了共享数量外,您还可以获得共享站点页面的个人社交网络的数字细分。在中插入您的域名,并向您提供适当的建议。您可以获得Facebook、Twitter、Google+、Diggs、Linkedin、Google Buzz、Delicious和StumbleUpon的数字。

继Salil的回答之后,以下是sharedcount.com正在使用的一些主要API(完整列表如下:)

您可以使用sharedcount的API获取一般摘要,或者自己使用API编写一些内容:

  • Facebook:
  • 推特:
  • Google+1+1计数通过JSON-RPC POST调用检索,该调用需要API密钥(获取Google API密钥-):

    发布URL:

    邮政机构: [{“method”:“pos.plusones.get”,“id”:“p”,“params”:{“nolog”:true,“id”:“%%URL%%”,“source”:“widget”,“userId”:“@viewer”,“groupId”:“@self”},“jsonrpc”:“2.0”,“key”:“p”,“apiVersion”:“v1”}]


    • 如果你只需要每页的数量,超级社交媒体跟踪器可以提供


      但是对于海量页面来说,它的速度很慢。

      环顾四周后,我们最好使用FQL和graph API:

      结果是

      {
         "data": [
            {
               "comment_count": 3,
               "share_count": 91,
               "like_count": 5
            }
         ]
      }
      

      问题是,用户不断在网站上创建新页面(新用户配置文件、新博客、新博客帖子等)。让一个facebook用户“喜欢”网站上的每一件事其实并不可行,因为没有办法自动喜欢我网站上的每一件事。我必须写一个机器人来抓取网站,并且喜欢周期性的做任何事情。我真的在寻找一种不用做大量工作就可以从facevook的API中获取数据的方法。你可以自动发布链接(或注释等),然后查看选择共享计数,比如链接统计中的计数、评论计数、总计数(从链接中选择url,其中所有者=“假用户id”)这看起来很有希望,但我无法让查询返回多个结果,即使我的域中的许多页面都被“喜欢”。它似乎只返回where子句中确切URL的相似数据。可能需要查看FQL语法,我从来没有这样做过。可能需要包含某种通配符。Fql中没有通配符:-(有人能成功地使用上述FQL吗?这看起来很有希望。仅供参考,我还没有找到解决方案。我目前正在处理Facebook的javascript API触发的客户端事件,以捕获我的应用程序数据库中的数据,并在我需要最喜欢的页面时查询我的本地数据库网站。在这种情况下,您将如何处理用户从外部取消页面链接(他们的fb档案本身)?这是一个与原始问题中的查询非常相似的查询,并且使我们无法接近最终目标,即获取网站上每个页面的所有“喜欢”。这需要首先创建一个页面列表,而您可能已经没有了(例如,已删除的页面),是否有方法在不创建列表的情况下获得相同的结果?
      $arrayOfPages = array('url1', 'url2', 'url3');
      
      $listOfPages = implode(',', $arrayOfPages);
      
      SELECT share_count, like_count, comment_count, total_count, url
      FROM link_stat
      WHERE url IN ($listOfPages)
      
      {
         "data": [
            {
               "comment_count": 3,
               "share_count": 91,
               "like_count": 5
            }
         ]
      }