3

我有一个 ColdFusion 网页,我的服务器每 x 分钟刷新一次。该脚本检查各种提要(Facebook、YouTube 和内部新闻项目)并按时间顺序构建合并提要。Facebook 部分只是从我们的 Facebook 粉丝页面中提取帖子数据。当我从我们的帐户授权我的应用程序时,我可以使用提供的 OAuth 令牌来执行此操作。

令牌每两个月或我认为的东西到期。它持续了很长一段时间,我已经读过没有办法自动授权应用程序。但是,我一直在阅读有关这些刷新令牌或其他内容的信息,但无法清楚地了解它们的工作原理。

我希望我的脚本尝试从 Facebook 获取 JSON 数据,如果令牌经常过期,请重新请求它,但似乎只是再次点击 graphs.facebook.com/oauth/authorize 链接并没有工作,因为显然您需要登录才能授权某事。

无论如何我可以在内部重新授权或刷新我的令牌服务器端。这个 Facebook 应用程序、网站和 Facebook 用户都是完全内部的。曾经有一个 Facebook 页面的 RSS 提要,但 Facebook 一直在改变东西,我再也看不到它了。

我真正需要的只是我的 Facebook 公司页面的时间线/提要中的数据。

任何解决方案或建议都会有所帮助。

回答:这就是我最终用来根据内容获取数据的方法。下面抓取令牌,然后使用令牌抓取提要数据并将其放入结构中。这可能不是最简洁的方式,但它确实有效。

<cfhttp url="https://graph.facebook.com/oauth/access_token?client_id=[CLIENTID]&client_secret=[CLIENTSECRET]&grant_type=client_credentials&redirect_uri=[URL] "   
        result="AccessHTTP" />
<cfset token = replace(AccessHTTP.Filecontent,"access_token=", "", "ALL")>

<cfhttp result="result" url="https://graph.facebook.com/[USERNAME]/posts?access_token=#token#" ></cfhttp>
<cfset Facebook = deserializeJSON(result.filecontent).data />
4

1 回答 1

0

每次我的页面加载时我都会抓住令牌..

<cfhttp url="https://graph.facebook.com/oauth/access_token?client_id=your_client_id&client_secret=your_secret&grant_type=client_credentials" result="ThisHTTP" /> <cfset this.access_token = '#replace(ThisHTTP.Filecontent,"access_token=", "", "ALL")#'>

///在需要时使用#this.access_token#在下面运行您的代码。///

于 2012-04-05T15:35:12.667 回答