Facebook SDK v4访问令牌过期

时间:2014-06-10 13:26:47

标签: facebook-php-sdk facebook-page facebook-access-token

所以我正在创建一个应用程序,从我管理的页面中提取事件并生成日历。显然,查看此页面的客户端无需看到登录屏幕,因为我只想显示我的页面。

我的问题是,似乎所有访问令牌都会过期,因为他们希望从客户端登录。有没有办法规避这个?我不想每60天要求一个新令牌,所以我可以访问我的数据。

1 个答案:

答案 0 :(得分:1)

这个问题有两个解决方案。如果事件是公开的,并且页面上没有年龄限制,您可以使用app_access_token来调用API并检索事件。

您可以通过启动newAppSession

来执行此操作
FacebookSession::newAppSession();

第二个选项是将管理员登录到您的应用程序并使用长期访问令牌来调用API。这要求管理员至少登录一次,但除非管理员更改密码或撤销应用程序,否则令牌不会过期。

用户登录后,您可以致电:

// get long-lived session
$long_session = $session->getLongLivedSession();

// set page access_tokens
$request = new FacebookRequest( $long_session, 'GET', '/me/accounts' );
$response = $request->execute();
// get response
$page_tokens = $response->getGraphObject()->asArray();

这将返回一个长期存在的页面access_tokens列表,可用于调用Events API。