首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Google为Google v3刷新令牌

使用Google为Google v3刷新令牌
EN

Stack Overflow用户
提问于 2016-11-07 15:52:11
回答 1查看 998关注 0票数 2

我试图使用Google (PHP)在系统日历和用户的Google日历之间执行每日同步。我希望系统用户能够设置从系统中访问他们的日历一次,然后系统可以通过cron作业每天同步日历。

我设法使整个过程正常工作,从授权访问到同步日历,但我被标记的过期时间卡住了。

我认为它在v3中工作的方式是旧令牌充当刷新令牌。因此,一旦用户提供了授权,我只需将旧令牌传递给Google,就可以运行同步。

这似乎是可行的,只要我在初始令牌的1小时到期时间内。一旦一个小时过去,它停止工作,我需要让用户再次授权访问。

有没有办法让用户授权访问一次,然后每天同步一次日历,而不需要用户再次授权访问?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-08 07:42:46

那么,在Google授权期间,您将收到一个令牌,它将在3600秒或一小时内过期,过期是正常的。因此,您需要使用刷新令牌来获得新的工作令牌。

下面是您需要的步骤:

代码语言:javascript
运行
复制
$token = $client->getAccessToken();
$authObj = json_decode($token);
if(isset($authObj->refresh_token)) {
save_refresh_token($authObj->refresh_token);
}

保存这个refresh_token很重要,然后您可以用

代码语言:javascript
运行
复制
$client->refreshToken($your_saved_refresh_token);

然后将新的访问令牌设置为会话:

代码语言:javascript
运行
复制
$_SESSION['access_token'] = $client->getAccessToken();

有关更多信息,请查看此SO question

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40469225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档