我有一个ColdFusion网页,每隔x分钟就会被服务器刷新一次。该脚本检查各种信息源(Facebook、YouTube和内部新闻项),并按时间顺序构建合并的信息流。Facebook部分只是从我们的Facebook粉丝页面获取帖子数据。当我从我们的帐户授权我的应用程序时,我可以使用提供的OAuth令牌来实现这一点。
令牌每隔几个月就会过期。它的持续时间相当长,我已经读到没有自动授权应用程序的方法。然而,我一直在阅读关于这些"refresh token"的东西,但对它们的工作方式无法清楚地理解。
我希望我的脚本尝试从Facebook获取JSON数据,如果令牌每隔一段时间过期,则重新请求它,但显然只是再次访问graphs.facebook.com/oauth/authorize链接是不起作用的,因为你需要登录才能授权某些东西。
有没有办法我可以在服务器端内部重新授权或刷新我的令牌?这个Facebook应用程序、网站和Facebook用户都是完全内部的。以前有一个Facebook页面的RSS feed,但是Facebook一直在更改东西,我不再看到它了。
我真正需要的只是来自我的Facebook公司页面的时间线/信息流数据。
任何解决方案或建议都将是有帮助的。
答案:这就是我最终用来基于内容获取数据的方法。下面获取令牌,然后使用令牌获取feed数据并将其放入一个struct中。它可能不是最简洁的方法,但它起作用。
令牌每隔几个月就会过期。它的持续时间相当长,我已经读到没有自动授权应用程序的方法。然而,我一直在阅读关于这些"refresh token"的东西,但对它们的工作方式无法清楚地理解。
我希望我的脚本尝试从Facebook获取JSON数据,如果令牌每隔一段时间过期,则重新请求它,但显然只是再次访问graphs.facebook.com/oauth/authorize链接是不起作用的,因为你需要登录才能授权某些东西。
有没有办法我可以在服务器端内部重新授权或刷新我的令牌?这个Facebook应用程序、网站和Facebook用户都是完全内部的。以前有一个Facebook页面的RSS feed,但是Facebook一直在更改东西,我不再看到它了。
我真正需要的只是来自我的Facebook公司页面的时间线/信息流数据。
任何解决方案或建议都将是有帮助的。
答案:这就是我最终用来基于内容获取数据的方法。下面获取令牌,然后使用令牌获取feed数据并将其放入一个struct中。它可能不是最简洁的方法,但它起作用。
<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