调用OAuth2库报TypeError: createService is not a function
OAuth2.createService is not a function 报错排查 按出现概率从高到低依次排查:
- 库标识符配置错误
打开Apps Script编辑器左侧「库」面板,检查已添加的OAuth2库的标识符字段,必须和代码里调用的前缀一致。如果你代码里写的是OAuth2.createService(),那标识符就得是OAuth2;如果安装库的时候自动生成了别的标识符(比如带版本后缀),要么改标识符和代码对齐,要么把代码里的调用前缀改成实际的标识符值。顺便确认库选的是最新正式版,别选好几年前的旧版本,旧版本可能没导出对应方法。 - 命名空间冲突
全项目搜OAuth2,看你自己的代码里有没有定义过叫OAuth2的变量、函数。自定义的同名值会直接覆盖引入的库对象,自然调不到库里的方法,找到之后重命名自定义的变量/函数就行。 - 链式调用语法错误
你贴的代码最后有一行.setParm(),这行本身就有问题:一是方法名拼错了,库里没有setParm这个方法,正确的自定义参数方法是setParam;二是这个方法必须传参名、参数值两个入参,空调用会直接打断链式调用抛错。不需要传自定义参数就直接删掉这行,要传就按.setParam('key', 'value')的格式写。
出错代码片段
function getToken() { const scriptProperties = PropertiesService.getScriptProperties(); var client_id = scriptProperties.getProperty('CLIENT_ID'); var secret = scriptProperties.getProperty('SECRET'); var service = OAuth2.createService('Service') .setAuthorizationBaseUrl('X') .setTokenUrl('X') .setClientId(client_id) .setClientSecret(secret) .setCallbackFunction('authCallback') .setPropertyStore(PropertiesService.getUserProperties()) .setScope('CustomerAPI.Public') .setParm() // 错误调用点 Logger.log(service); }
内容的提问来源于stack exchange,提问作者Vibelord
相关产品推荐
相关产品推荐

