【问题标题】:Reading Facebook's Public Posts and User Profiles using Graph API in RestFB ?在 RestFB 中使用 Graph API 阅读 Facebook 的公开帖子和用户资料?
【发布时间】:2013-08-29 08:39:26
【问题描述】:

我只想使用 Graph(搜索)API 准备来自 Facebook 的公开帖子和这些帖子的用户个人资料。

我对我需要哪个访问令牌有点困惑,我需要用户访问令牌还是应用程序访问令牌?

我的应用程序是基于 Java 的控制台/桌面应用程序,我正在使用 RestFB。

请在此处指导我如何获取所需信息,最重要的是,如果我需要 User Access Token ,那么如何使用 RestFB(或任何其他 Java Facebook 库)在我的应用程序中自动执行此过程?

请注意,这是一个控制台应用程序(将在服务器上运行)而不是客户端应用程序,所以我可以做的是创建一个虚拟 facebook 用户帐户并使用该虚拟帐户生成用户访问令牌。

谢谢, 托尼

【问题讨论】:

  • public Posts and User's profiles of those Posts - 哪些帖子?您的要求还不清楚。
  • 我使用 GRAPH API 搜索过的帖子。
  • 您使用的是search API 还是page 提要?能举个例子吗?

标签: facebook restfb


【解决方案1】:

尝试阅读有关令牌的文档,您有四种类型的令牌。看看什么最适合你。

用户访问令牌 – 用户令牌是最常用的访问令牌类型 令牌。每当应用调用 用于读取、修改或写入特定人的 Facebook 数据的 API 代表他们。用户访问令牌通常通过登录获得 对话框并要求一个人允许您的应用获取一个。


App Access Token - 需要这种访问令牌来修改和 阅读应用程序设置。也可用于发布 Open Graph 行动。它是使用应用程序和应用程序之间预先商定的秘密生成的 Facebook,然后在更改应用程序范围设置的呼叫期间使用。 您通过服务器到服务器调用获取应用访问令牌。


页面访问令牌 – 这些访问令牌类似于用户访问 令牌,除了它们向 API 提供读、写权限 或修改属于 Facebook 主页的数据。获取页面 访问令牌,您需要首先获取用户访问令牌和 请求 manage_pages 权限。一旦您拥有用户访问权限 令牌,然后您可以通过 Graph API 获取页面访问令牌。


客户端令牌 - 客户端令牌是您可以嵌入的标识符 进入本地移动二进制文件或桌面应用程序以识别您的应用程序。这 客户端令牌并不意味着是一个秘密标识符,因为它是 嵌入到应用程序中。客户端令牌用于访问应用级别 API,但只是一个非常有限的子集。客户端令牌位于 您应用的仪表板。由于客户端令牌很少使用,我们不会 在本文档中讨论它。相反,它包含在任何 API 中 使用客户端令牌的文档。


您可以在这里https://developers.facebook.com/docs/facebook-login/access-tokens/阅读每个令牌的更详细信息

如果这对您来说很复杂,您可以使用 rss 提要获取页面的公开帖子。您可以使用 xml 或 json 格式。

XML https://www.facebook.com/feeds/page.php?id=PAGE_ID&format=rss20
JSON https://www.facebook.com/feeds/page.php?id=PAGE_ID&format=json

其中 PAGE_ID 是您想要的页面的 id,例如这两个 url 为您提供 John Frusciante 页面的公开帖子

XML -> https://www.facebook.com/feeds/page.php?id=122854921087972&format=rss20

JSON -> https://www.facebook.com/feeds/page.php?id=122854921087972&format=json

【讨论】:

  • 谢谢 Fabio,看来我需要用户访问令牌。我已将我的短期用户访问令牌转换为长期令牌。但是我对它的过期有点困惑......如果我每天使用这个令牌来调用 Graph API,它会不会过期???还有一个问题是要在任何公共 Facebook 粉丝页面上获取用户统计信息,如粉丝、喜欢、帖子等……我必须使用哪个 Access Token & Graph API?
  • 不,出于安全原因,用户令牌的最长有效期为 60 天。
  • 上周我将我的 Short-Lived Token 转换为 Long-Lived,从技术上讲,它应该告诉我我的到期时间是 60 - 7 = 53 天......但它显示我 58 天......所以我想知道它是否会自动刷新其到期时间?
  • 可能在您的流程中某处您请求了新令牌,因为令牌不会在没有用户交互的情况下自动更新
  • 嗯,我今天再次测试了我的长寿用户访问令牌的到期时间,它再次向我展示了 58 天......所以我认为它的 Facebook 以某种方式让我在使用访问令牌时焕然一新!!!
猜你喜欢
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多