【问题标题】:Access token issue when I get list of Albums for Facebook page using Javascript API当我使用 Javascript API 获取 Facebook 页面的专辑列表时访问令牌问题
【发布时间】:2015-11-29 18:26:06
【问题描述】:

我已经像这样初始化了 FB Graph JS SDK,只是想进行一个简单的调用来获取我的 Facebook 页面的专辑列表:

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '707131072721568',
      xfbml      : true,
      version    : 'v2.5'
    });
  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>

现在当我像这样调用/albums Graph API 时:

FB.api(
    "/piggyslasher/accounts",
    function (response) {
        console.log(response);
    }
);

输出如下错误:

请求此资源需要访问令牌。

我没有任何 FB 登录系统。我只想从常规的公共 Facebook 页面获取专辑列表。

【问题讨论】:

  • 你要么必须让用户登录到你的应用,要么让这个 API 调用服务器端,这样你就可以使用你的应用访问令牌或页面访问令牌(这两者都是你不想要的在客户端代码中公开。)

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


【解决方案1】:

所有 Graph API 请求都必须使用访问令牌。 (即使页面是公开的)

【讨论】:

  • 是的,但是如何在不使用需要 APP_SECRET 的 PHP SDK 的情况下获取访问令牌。我不能将 APP_SECRET 放在前端 javascript 中可以吗?一些代码会有所帮助。
  • 我通过访问以下 URL 获得了访问令牌:>graph.facebook.com/oauth/…,但是如何将其合并到以后的图形调用中?
  • @Vik 这是一个应用令牌。花时间阅读文档developers.facebook.com/docs/facebook-login。 JS SDK 不是为您想要做的事情而设计的,因为它是客户端登录。如果你想使用 PHP SDK,你需要硬编码里面的访问令牌,并确保它没有过期日期。 Stack Overflow 和 Google 上有大量帖子解释了这一点。我已经回答了您最初的问题,这就是为什么您在不登录的情况下无法使用 JS SDK 获取专辑,答案是,您需要登录。 developers.facebook.com/docs/facebook-login
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 2018-06-16
  • 2012-02-13
  • 1970-01-01
相关资源
最近更新 更多