access_token到期了吗?我正在尝试查询带有JS的公共帖子。更简单的方法?

时间:2013-03-22 14:52:55

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

初学者,我已经迷失在Facebook开发者文档和谷歌数小时。我确信这是一个简单的问题,但我只是需要一些方向。

我正在尝试做什么:使用JavaScript从公共Facebook页面查询页面所有者的最新帖子并解析它以在我自己的HTML中显示(不能使用Social Plugin - 我需要自定义控件通过HTML / CSS)。

到目前为止我的工作是什么:

var token = '<my_token>';
var query = 'fields=posts.limit(1)';
var request = 'https://graph.facebook.com/[mypage]?' + query + '&access_token=' + token;
$.getJSON(request, function(response) {
  alert(response.posts.data[0].message);
});

这确实有效,但Access Token debugger表示我的access_token将在2个月内过期。为什么?这是一个公共Facebook页面,我只想查询页面所有者的最新评论。我真的需要创建一个Facebook应用程序并通过PHP登录才能访问这些公共信息吗?

我正在使用Twitter提要执行完全相同的操作,我所要做的只是$ .getJSON http://api.twitter.com/1/statuses/user_timeline/。json,完全使用JavaScript。

似乎从Facebook获取类似信息要困难得多,但也许我会以错误的方式解决这个问题?

1 个答案:

答案 0 :(得分:1)

  

这确实有效,但是,Access Token调试器说我的access_token将在2个月后到期。为什么呢?

因为这就是用户访问令牌所做的事情。

  

我真的需要创建一个Facebook应用程序并通过PHP登录才能访问这些公共信息吗?

对于以任何方式受到限制的网页(根据年龄,国家或与酒精相关的内容),您 使用用户访问令牌,因为这是Facebook可以判断您是否唯一的方法实际上允许看到内容。

如果它是您自己的页面,那么您可以生成页面访问令牌 - 如果您使用长期用户访问令牌来获取它们,则默认情况下这些令牌不会过期。

但是您不希望在客户端JavaScript中公开这种令牌,因为访问您网站的每个人都可以从那里窃取它并代表您的网页行事。