【问题标题】:How to GET Recent Status Updates on Facebook Page Using Facebook Graph Search API?如何使用 Facebook Graph Search API 获取 Facebook 页面上的最新状态更新?
【发布时间】:2013-05-07 21:20:19
【问题描述】:

类似于Getting Recent Page feeds? Facebook Graph API / FQLGetting Facebook Status updates with JSon 我想使用 Facebook 的 Graph API 发出 GET 请求,并将该数据插入到页面中。使用搜索 API,我能够检索有关页面的信息,例如区域设置、描述和网站,但生成的 JSON 中不包含状态更新/发布更新。

如何使用 Facebook 的公共 Graph API 从给定页面检索最新状态更新/帖子?

【问题讨论】:

  • 为什么要使用搜索 API 来检索给定/特定页面上的最新更新。为什么不直接从页面查询呢?

标签: json facebook-graph-api


【解决方案1】:

事实证明可以做到这一点,但您需要生成一个访问令牌(用于页面)。为此,您需要拥有相关页面的管理员权限。所以对我来说,我必须要求该页面让我成为管理员(将他们指向页面上的“管理管理员角色”下拉菜单)。

接下来,您需要生成访问令牌。转到此处Facebook API Browser,然后单击右侧的“获取访问令牌”按钮。 选择manage_pages角色。

最终到达网址应如下所示:https://graph.facebook.com/{page_id}/statuses?access_token=BAACEdE...

这是我用来测试我的 URL 的 javascript 函数(您也可以在浏览器上导航):

function populateFacebookUpdates() {
        var pageID = "mycompanypage",
            accessToken = "BAACEdE...";
        var postsURL = "https://graph.facebook.com/" + pageID + "/statuses?access_token=" + accessToken;

        $.ajax({
            url: postsURL,
            method: 'GET',
            dataType: "jsonp",
            success: function (data)
            {
                console.log("Successfully retrieved Facebook data");
                console.dir(data);
            },
            error: function(status) {
                console.log("Facebook data could not be retrieved.  Failed with a status of " + status);
            }
        });
    }

以 JSON 格式返回的数据是我想要的。另外,请注意,检索可以在任何浏览器/机器/IP 上工作(但是它确实会过期)。出于明显的安全原因,我只是警告不要将整个 URL 放在客户端 javascript 文件中......

【讨论】:

  • 事实证明,statuses 对我的目的来说很好。在不使用 PHP SDK 的情况下,我能够访问我页面的最新帖子(包括共享链接、状态更新等)。为此,我只是在以下 URL 上创建了 GEThttps://graph.facebook.com/[pageID]/feed?access_token=[appIDhere]|[appSecretHere]。请注意 | 分隔符以分隔两个凭据。希望这对某人有所帮助。
  • 请注意,使用/{pageID}/statuses?access_token=... 会返回此错误,以及最新版本的 API:(#12) statuses field is deprecated for versions v2.4 and higher
【解决方案2】:

状态是一个连接,而不是documentation 中的字段。据我所知,只能通过搜索 API 检索字段信息。如果您想要状态,则必须从搜索中获取页面 ID,然后使用下面的调用查询该页面的状态。

https://graph.facebook.com/{pageID}/statuses

【讨论】:

  • 它对我不起作用。仍然需要身份验证:{ "error": { "message": "An access token is required to request this resource.", "type": "OAuthException", "code": 104 } } 那么我是否需要使用 oAuth 来授权服务器在执行 GET 之前检索数据?
  • 试试graph.facebook.com{pageID}/statuses?access_token={YOUR_ACCESS_TOKEN}。您可以使用图形浏览器工具developers.facebook.com/tools/explorer/… 快速生成访问令牌
  • 是的,但访问令牌是临时的。如何在没有应用程序或应用程序 ID 的情况下生成访问令牌?通过阅读 PHP SDK 文档,我似乎需要一个应用程序:developers.facebook.com/docs/reference/php - 我是否需要让服务器以我的身份“登录”以生成可以在每个会话中重复使用的访问令牌?
  • 那是另一个话题了。但是 access_token 通常是根据需要以编程方式生成的。据我所知,您确实需要设置一个 Facebook 应用程序以编程方式生成 access_token。
  • 还没有回答。在我看来,您确实需要访问令牌才能执行这些任务(请参阅下面的帖子)。我想我会尝试使用 PHP 发出 GET 请求,然后检查响应以查看是否存在身份验证错误;如果有,我会生成一个新的令牌......就像这里:developers.facebook.com/blog/post/2011/05/13/…
猜你喜欢
  • 2014-05-19
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
相关资源
最近更新 更多