如何以及何时将刷新令牌与php-googlecalenderapi一起使用


how and when to use the refresh token with php google calender api

我使用的是php-谷歌日历api的v3。

在日历所有者授权后,我将带有刷新令牌的access_token保存在数据库中。

当日历页面被任何人显示时,我有一点代码可以

$client = new apiClient();
$client->setApplicationName("My Calendar");
$client->setAccessType('offline');
$client->setAccessToken( $_SESSION['google']['access_token'] );
$calService = new apiCalendarService($client);
$optParams = array('timeMin' => $gstart, 'timeMax'=> $gend);
$events = $calService->events->listEvents($_SESSION['google']['google_cal_id'], $optParams);

我在文档中看到,在某个时候,我可能不得不使用刷新令牌(我在数据库中有)我不知道的是如何使用这个代币以及何时使用。setAccessToken会在某个时刻引发异常吗?测试这一点的最佳方法是什么感谢

如果您希望在没有用户重新身份验证的情况下保持身份验证活动,则使用刷新令牌。例如,我们有一个使用谷歌分析api的报告工具。我需要每10分钟在它上运行一次查询,所以一旦用户验证了我们的应用程序,我就会使用刷新令牌,这样即使用户没有登录,我的自动查询也可以运行。基本上,刷新令牌用于在没有用户交互的情况下保持会话的有效性。我希望这是有道理的。

访问令牌将在3600秒或一小时后过期。但您可以使用刷新令牌来获得新的访问令牌,而无需用户重新身份验证。

有关如何使用php获取刷新令牌的详细信息,请查看本文中接受的答案:使用php脚本使用google drive api自动刷新令牌

如果您使用REST API而不是PHP SDK,那么它基本上将您的刷新令牌client_id,secret发送到https://accounts.google.com/o/oauth2/token如页面底部所述

刷新令牌不会过期,除非用户撤销它或您以编程方式撤销它。