我有一个ColdFusion网页,每隔x分钟由我的服务器刷新一次。该脚本检查各种订阅源(Facebook,YouTube和内部新闻项目)并按时间顺序构建合并的订阅源。 Facebook部分只是从我们的Facebook粉丝页面中提取发布数据。我可以使用从我们的帐户授权我的应用程序时提供的OAuth令牌来执行此操作。服务器端OAuth Facebook令牌刷新
令牌每隔几个月就会过期,或者我想。它持续了很长一段时间,而且我已经阅读,没有办法自动授权应用程序。然而,我不断阅读这些刷新标记或其他内容,但无法清楚地了解它们的工作方式。
我想我的脚本试图从Facebook获取JSON数据,并且如果令牌经常过期,请重新请求它,但似乎只是点击graphs.facebook.com/oauth/authorize链接再次不起作用,因为显然你需要登录才能授权。
无论如何,我可以在内部重新授权或刷新我的令牌服务器端。这个Facebook应用程序,网站和Facebook用户都是完全内部的。曾经有一个Facebook页面的RSS源,但Facebook总是改变一些东西,而我不再看到它。
我真正需要的是我的Facebook公司页面的时间线/ Feed中的数据。
任何解决方案或建议都会有所帮助。
回答:这就是我最终用来获取基于内容的数据。在抓取令牌的下方,然后使用该令牌抓取馈送数据并将其放入结构中。它可能不是最简洁的方式,但它的工作原理。
<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 />
因此,在客户端秘密的情况下,每次都可以获取令牌?我只是使用: 'https://graph.facebook.com/oauth/authorize?type = user_agent&client_id = YOUR_CLIENT_ID&redirect_uri = REDIRECT_URL&scope = offline_access' Facebook文档在我看来是糟糕的,我没有看到格式你列在上面。我将不得不尝试一下。 – Leeish 2012-04-05 16:42:56
它迫使我加入redirect_uri,因为oAuth不停地给我一个错误,说它需要它,但是之后它确实很好。我将添加答案,原来的帖子,所以它在那里。 – Leeish 2012-04-11 17:29:52