获取访问令牌,而无需连接到Facebook
我需要使用他们的javascript SDK检索facebook页面的帖子列表(feed),就像他们在他们的文档中解释的一样:https://developers.facebook.com/docs/graph-api/reference/v2.4/page/饲料
/* 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
的唯一方式是用户实际连接到应用程序。 我的用户甚至可能不会登录到Facebook!
所以,我怎样才能将access_token存储到一个变量中,然后用来获取/{my-page}/posts
?
我已经看过这个SO问题,但它不能解决我的问题,仅仅因为没有这样的“通用标记”。 我也读过https://developers.facebook.com/docs/facebook-login/access-tokens/,这也依赖于通过Facebook登录方法生成的令牌......所以,我不能显示fb列表页面的帖子在我的网站上,没有连接到Facebook,因此是一个应用程序?
ADD:我的应用程序是用angularJS构建的,我没有处理服务器端代码。 我将纯粹依靠javascript方法。
您可以使用页面或应用程序访问令牌,但正如您在客户端使用它们一样,它们都不是一个选项。
看到
请注意,由于此请求使用您的应用程序密码,因此绝不能在客户端代码或应用程序二进制文件中进行反编译。 不要与任何人共享您的应用秘密,这一点很重要。 因此,只能使用服务器端代码进行此API调用。
我强烈建议构建一个简单的服务器端脚本(例如PHP)以将请求代理到Graph API。 然后你可以通过AJAX调用这个例子,并异步加载帖子(并且除掉FB JS SDK!)。 有没有办法在一个安全的方式来处理这个,如果你不想使用FB登录的所有用户(也没有多大意义恕我直言)
我认为这很简单:)
由于页面的帖子总是公开的 ,它只需要一个有效的访问令牌来检索页面帖子。 引用你写的内容:
所以,我怎样才能将access_token存储到一个变量中,然后用来获取/ {my-page} / posts?
您只需要一个访问令牌。
我的建议是;
- 为自己生成访问令牌(不需要额外的权限) - 请求页面ID /帖子
通过这种方式,您不需要将其他用户连接到Facebook,只需要使用page-id / posts来检索包含您为自己生成的访问令牌的帖子。
我希望它能解决你的问题:D
提示 :只要帖子是公开的 ,您只需要一个有效的访问令牌,它不需要是用户或页面特定的。
上一篇: Get an access token without being connected to facebook
下一篇: How to get USER access token, the same used in Graph API Explorer