node.js - 如何使用 Google API 服务库 (Node.js) 运行 Google App 脚本
问题描述
通过遵循 Google Apps Script > Rest API Node.js 快速入门示例,我能够完成身份验证过程(点击链接,获取令牌,存储令牌)
但脚本执行失败并显示错误消息
The API returned an error: Error: Project title may not be empty.
project.create() 的文档表明请求正文只需要包含快速入门所具有的 {title:string}。
仔细检查 Google Apps 脚本 API 是否已启用 = 是,但 api 启用页面显示了一些不应该显示的 html 代码,并且该页面概述部分中的启用它以供使用url已损坏。
我很确定 API 已启用,因为我在 console.cloud 中看到了流量
该方法看起来像这样。
script.projects.create({
auth,
resource: {
title: 'My Script'
}
});
我还尝试了 auth: auth 因为这是我在其他地方看到的工作(相同的错误消息)
换句话说,我完全按照快速入门并检查了功能文档无济于事,有人可以帮忙吗?
解决方案
我认为您的请求正文有效。那么你能确认以下几点吗?
- 你用的是什么版本?在我的环境中,无法使用 v25.0.0 - v30.0.0 的 googleapis。我确认带有 v24.0.0 的 googleapis 可以正常工作。
- 当您使用 v24.0.0 时,如果您的脚本使用
var {google} = require('googleapis');
. 请修改为var google = require('googleapis');
.
- 当您使用 v24.0.0 时,如果您的脚本使用
- 请确认此页面https://script.google.com/home/usersettings 如果开关关闭,请打开。这样,就可以使用 Google Apps Script API。当开关关闭时,即使 Google Apps Script API 的范围被授权,用户也不能使用这些 API。
笔记 :
- 不幸的是,在 v25.0.0 版本之后,报告了一些 API 和选项的错误。我相信这些错误将来会被删除。所以如果API和你使用的选项出现一些错误,请修改googleapis的版本,然后重试。
参考 :
- 如何在 v4 中更新我的谷歌表格?
- 使用 Gmail API nodejs 创建 gmail 过滤器,错误:过滤器没有任何条件
- 尝试通过 API(v3)在 Google Drive 上创建文件夹时权限不足
- Youtube Data API V3 - 使用 google.youtube.videos.list() 获取视频时出错
- Google 驱动器 API - 无法读取未定义的属性“OAuth2”
如果这些要点对您的情况没有用,我很抱歉。
推荐阅读
- laravel-5.8 - 如何将我的 sql 查询编码为 Laravel 查询
- r - 如何将geom_bar、geom_point、geom_line组合成一张图?
- state - 尝试正确使用 ReactHook 的 useState
- flutter - Flutter NFC 阅读器插件在插件内部出现错误时不起作用
- angular - 通用 DataService 中的动态端点扩展
- java - 为什么 Calendar.getInstance() 和 getDate() 方法不能按预期工作?无法检索日期
- android - `import com.mapbox.services.android` 的“无法解析符号服务”
- excel - 如何在不同的地方同时更改多个 VB 代码副本
- python - SyntaxError:生成器表达式必须在 Zipline 中用括号括起来
- javascript - chrome扩展弹出窗口未显示