我正在编写一个自定义Google脚本库,可在多个Google工作表中使用。它使用Google Script OAuth2 library来管理带有Smartsheet API的OAuth流。很遗憾,它正在返回'重定向URI丢失或无效'。
我让OAuth2流程在单个电子表格脚本中运行良好,但是当我将代码移动到库中时它停止了工作。
我 DID 更新了Smartsheet开发人员菜单中的重定向URI,我确认从.getRedirectUri()返回的URI是与我的应用相关联的URI在Smartsheet的应用注册中。
库中代码的其他方面运行良好,让我高度放心,它仍然像它绑在一张纸上一样工作。
我对该库的目标是可以从多个工作表中使用它来访问Smartsheet API,从而阻止我在Smartsheet开发人员菜单中为每个可能使用的工作表创建一个独特的应用程序(具有唯一的重定向URI)这段代码。
这可能吗?我不知道它不喜欢重定向URI吗?
答案 0 :(得分:0)
开发库时,最好不要使用令牌源。常见的设计模式是让用户传入您的库调用以获取令牌的函数。这允许用户选择OAuth工作流的实施方式和位置。
myLibrary.gs
var tokenService_ = function(){return null};
function setTokenService(tokenService){
tokenService_ = tokenService
}
//some hypothetical function in your library
function getData(options){
return fetchFromAPI(options,tokenService_());
}
userCode.gs
function requestData(){
myLibrary.setTokenService(function(){ return ScriptApp.getOAuthToken()});
var data = myLibrary.getData("foo");
}