2012-03-09 140 views
3

有没有办法将Facebook内容(特别是从公共页面发布的墙贴)显示在没有Facebook需要用户登录的网站上?在不建议使用offline_access权限之前,我只需创建一个令牌作为自己,存储它并根据需要提取信息。向非Facebook用户显示Facebook帖子

现在,从我所知道的情况来看,我唯一的两个选择是1)每60天手动更新一次该令牌,或2)仅将内容显示给Facebook用户,并让他们“允许”该应用。显然#1不是首选,#2似乎不是很好的做法。

仅供参考,我只是试图拉从公开访问的页面墙内容,并要求代表用户(没有墙张贴,不读数据流等)采取任何行动。

这似乎是一个很简单的概念,我觉得我必须失去了一些东西。我无法在任何地方找到答案。这些是我唯一的选择吗?任何反馈将非常感激。

更新时间:

我想我可能已经找到解决的办法。在不建议使用offline_access的情况下,可以使用fb_exchange_token选项来延长现有令牌的到期时间。拨打以下电话:

https://graph.facebook.com/oauth/access_token?client_id={app_id}&client_secret= 
{app_secret}&grant_type=fb_exchange_token&fb_exchange_token={existing_token} 

您应该收到带有延长过期的令牌。在我的场景中,我将允许应用程序通过我自己的Facebook帐户,将令牌存储在我的PHP代码中,并使用cURL定期更新现有代码。

注:根据Facebook的文件,过期只能每天一次

+0

_在取消offline_access权限之前,我会简单地创建一个标记作为我自己,存储它并根据需要提取信息。然后,如果出于安全原因更改密码或会话更改,则需要获得另一个访问权限令牌再次&我不确定这是可能的弃用离线访问后(我认为它可以再次使用) – 2012-03-10 06:51:24

+0

@korysharp这个工作适合你吗?我正在尝试做同样的事情。你有没有一个你如何完成这个的例子? – MicFin 2014-08-23 03:46:26

+1

@MicFin我目前使用https://graph.facebook.com/{page_url}/feed?access_token={app_token}其中PAGE_URL是网页的网址(例如:可口可乐)和app_token表示应用程序访问令牌。请参阅http://stackoverflow.com/questions/12948809/trying-to-get-app-access-token获取获取其中之一的说明。我已经能够存储和使用这个单一的令牌(没有到期)为我们所有的网站。希望这可以帮助。 – 2014-08-26 16:14:13

回答

0

扩展假设你自己的页面,您可以使用manage_pages许可。 manage_pages权限是我可以收集的永久性令牌。然后使用/ feed图形api和相关页码来获取信息。

我假设你拥有这个页面。如果你没有或没有明确给予许可,那么你没有权利将这些信息拉下来。

+1

除非我不正确地做某件事,事实并非如此。我刚刚获得了具有read_stream和manage_pages权限的令牌。该令牌在4238秒内过期(超过一个小时)。我知道您拥有的每个页面都有单独的令牌,您可以通过打开的图表api @/me/accounts访问,但这些页面令牌与用于获取这些密钥的令牌同时过期。 – 2012-03-09 15:03:24

+0

如果获得publish_stream权限,那么情况如何?我已经在我的应用中使用过,并且我知道它不会过期。或者我已经有至少几个月了,它还在继续。 – 2012-03-09 15:18:30

+1

有用于存在不再存在的offline_access权限。我有一些网站使用我通过offline_access获得的令牌(仍然有效),但这不再是一种选择。 – 2012-03-09 15:21:35