获取访问令牌而不连接到Facebook

时间:2015-07-09 00:27:02

标签: javascript facebook facebook-graph-api facebook-javascript-sdk facebook-access-token

我需要使用他们的javascript SDK检索Facebook页面的帖子列表(Feed),就像他们在他们的文档中解释一样:https://developers.facebook.com/docs/graph-api/reference/v2.4/page/feed

/* make the API call */
FB.api(
    "/{page-id}/posts",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);

我需要它作为我网站的“新闻栏目”,所以即使用户没有连接到Facebook,用户也应该看到它。

问题

很酷,但有问题......它返回:An access token is required to request this resource. 神圣的牛...我想为你获取一些访问令牌@facebook,但是我的应用程序没有使用你的身份验证工具/插件。 无论如何,我尝试使用FB.getLoginStatus();但不起作用,因为它返回access_token的唯一方法是用户实际连接到应用程序。 我的用户可能甚至没有登录到脸书

那么,¿如何将access_token存储到变量中,以后用于获取/{my-page}/posts

我已经看过这个SO question,但它并没有解决我的问题,只是因为没有这样的“通用标记”。 我还阅读了https://developers.facebook.com/docs/facebook-login/access-tokens/,这也依赖于通过facebook登录方法生成的令牌......所以,我不能在我的网站上显示fb页面的帖子列表,而不是连接到facebook,因此是一个应用程序?

ADD:我的应用程序是使用angularJS构建的,我不是在处理服务器端代码。我将完全依赖于javascript方法。

2 个答案:

答案 0 :(得分:1)

您可以使用页面或应用访问令牌,但是当您在客户端使用它们时,它们都不是一个选项。

  

请注意,由于此请求使用您的应用程序机密,因此绝不能在客户端代码或可以反编译的应用程序二进制文件中进行。重要的是,您的应用秘密永远不会与任何人共享。因此,只应使用服务器端代码进行此API调用。

我强烈建议构建一个简单的服务器端脚本(例如PHP)来代理对Graph API的请求。然后你可以通过AJAX调用它,并异步加载帖子(并且除了FB JS SDK!)。如果您不想为所有用户使用FB登录,那么方式可以安全地处理此问题(这对我来说也没有多大意义)。< / p>

答案 1 :(得分:0)

我认为这很简单:)
由于网页的帖子始终是公开,因此只需要有效访问令牌来检索网页帖子。 引用你所写的内容:

  

那么,¿如何将access_token存储到变量中,以后用于获取/ {my-page} / posts?

您只需要一个访问令牌 我的建议是:   - 为自己生成访问令牌(无需额外的权限)   - 请求page-id / posts

这样您就不需要其他用户连接到Facebook,您只需要请求页面ID /帖子来检索您自己生成的访问令牌的帖子。

我希望它能解决你的问题:D
提示:只要帖子公开,您只需要一个有效的访问令牌,它不需要是用户或页面特定的。