我正在尝试使用 Google API (PHP) 在系统日历和用户的 Google 日历之间执行每日同步。我希望系统用户能够从系统内部设置对其日历的访问权限,然后系统可以通过 cron 作业每天同步日历。
我已经设法使整个过程正常运行,从授权访问到同步日历,但我遇到了令牌到期时间的问题。
我认为它在 v3 中的工作方式是旧令牌将充当刷新令牌。因此,一旦用户提供了授权,我只需要将旧令牌传递给 Google,它就允许我运行同步。
只要我在初始令牌的 1 小时到期时间内,这似乎就有效。一小时过去后,它就会停止工作,我需要让用户再次授权访问。
有没有办法让用户授权访问一次,然后每天同步日历一次,而无需用户再次授权访问?
Thanks!
那么,在您向 Google 授权期间,您将收到一个令牌,该令牌将在 3600 秒或一小时后过期,过期是正常的。因此,您需要使用刷新令牌来获取新的工作令牌。
以下是您需要的步骤:
$token = $client->getAccessToken();
$authObj = json_decode($token);
if(isset($authObj->refresh_token)) {
save_refresh_token($authObj->refresh_token);
}
保存此刷新令牌很重要,然后您可以使用以下命令更新它
$client->refreshToken($your_saved_refresh_token);
然后将新的访问令牌设置为会话:
$_SESSION['access_token'] = $client->getAccessToken();
欲了解更多信息,请检查此那么问题.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)