我遵循了GAS OAuth2 library example。但我想实现以下目标。
- 带有参数userID的通过Https获取/发布请求(authorizationUrl或
doGet()
)向GAS提出的doPost()
的UserA请求 - GAS返回authorizationUrl,并使用UserA的userID将其
state
变量保存在Google表格中> - UserA使用该授权[GAS检查
state
函数中的authCallback()
变量,并使用Google工作表中旧存储的authCallback()
变量进行验证。如果相同,则将UserA的- 访问令牌
与userID存储在同一Google工作表中 这样的东西
state
现在,UserA可以使用Https请求修改其驱动器,以保存的- 访问令牌
的GAS和GAS控件UserA的驱动器
UserB授权URL请求GAS还将授权URL返回给UserB,他也可以访问GAS。 GAS还将UserB的访问令牌保存为其用户ID。 现在GAS可以使用用户ID和已保存的访问令牌。控制UserA和UserB的驱动器。
有可能吗?我知道访问令牌会在一段时间后过期。请帮助我完成我的爱好项目我遵循了GAS OAuth2库示例。但我想实现以下目标。 UserA通过参数为userID的Https获取/发布请求(doGet()或doPost())向GAS请求的AuthorizationUrl ...
您可以使用function authCallback(request) {
var service = getService();
var authorized = service.handleCallback(request);
var state = request.parameter.state;
if (authorized) {
if(state == getOldState(userID)){
storeToken(userID, service.getAccessToken());
}
return HtmlService.createHtmlOutput('<h1>Success!</h1>');
} else {
return HtmlService.createHtmlOutput('Denied.');
}
}
类。
示例:
在脚本的PropertiesService
中保存访问令牌,并将令牌刷新到用户特定的属性中。
脚本将能够使用相同的doPost()
来获取这些属性。
进一步阅读:
您可以使用function authCallback(request) {
var service = getService();
var authorized = service.handleCallback(request);
var state = request.parameter.state;
if (authorized) {
if(state == getOldState(userID)){
storeToken(userID, service.getAccessToken());
}
return HtmlService.createHtmlOutput('<h1>Success!</h1>');
} else {
return HtmlService.createHtmlOutput('Denied.');
}
}
类。