如何使用 Google API 服务库 (Node.js) 运行 Google 应用脚本

Posted

技术标签:

【中文标题】如何使用 Google API 服务库 (Node.js) 运行 Google 应用脚本【英文标题】:How to run a Google App Script using Google API Service Library (Node.js) 【发布时间】:2018-10-19 21:11:37 【问题描述】:

通过遵循 Google Apps 脚本 > Rest API Node.js quickstart 示例,我能够完成身份验证过程(点击链接,获取令牌,存储令牌)

但脚本执行失败并显示错误消息

The API returned an error: Error: Project title may not be empty.

project.create() 的文档表明请求正文只需要包含快速入门所具有的 title:string。

仔细检查 Google Apps Script API 是否已启用 = 是,但 api 启用页面显示了一些不应显示的 html 代码,并且该页面概述部分中的启用它以供使用 url 已损坏。

我很确定 API 已启用,因为我在 console.cloud 中看到了流量

方法如下所示。

  script.projects.create(
    auth,
    resource: 
      title: 'My Script'
    
  );

我也尝试了 auth: auth,因为这是我在其他地方看到的(同样的错误消息)

错误堆栈如下所示。

换句话说,我完全按照快速入门并检查了功能文档无济于事,有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

我认为您的请求正文有效。那么您能确认以下几点吗?

    您使用的是什么版本?在我的环境中,无法使用 v25.0.0 - v30.0.0 的 googleapis。我确认带有 v24.0.0 的 googleapis 可以正常工作。 当您使用v24.0.0时,如果您的脚本使用var google = require('googleapis');,请修改为var google = require('googleapis');。 请确认此页https://script.google.com/home/usersettings如果开关关闭,请打开。这样,就可以使用 Google Apps Script API。关闭开关后,即使 Google Apps Script API 的范围得到授权,用户也无法使用这些 API。

注意:

很遗憾,在 v25.0.0 版本之后,报告了 API 和选项的一些错误。我相信这些错误将来会被删除。所以如果API和你使用的选项出现一些错误,请修改googleapis的版本,然后重试。

参考资料:

How do I update my google sheet in v4? Create a gmail filter with Gmail API nodejs, Error: Filter doesn't have any criteria Insufficient Permission when trying to create a folder on Google Drive via API(v3) Youtube Data API V3 - Error fetching video with google.youtube.videos.list() Google drive API - Cannot read property 'OAuth2' of undefined

如果这些要点对您的情况没有帮助,我很抱歉。

【讨论】:

确实是google api版本,npm install googleapis@24.0.0 --save @Rob Foree 感谢您的回复。我很高兴你的问题得到了解决。另外,我想将您的问题添加到未来答案的参考中。我认为这将帮助其他用户解决同样的错误。

以上是关于如何使用 Google API 服务库 (Node.js) 运行 Google 应用脚本的主要内容,如果未能解决你的问题,请参考以下文章

Google Adwords 和 Node.js:库还是访问 API 的不同方式?

Google Drive API失败,因为库的google.drive功能不存在

是否有任何 Node.js 客户端库可以对 Twitter、Facebook、Google、LinkedIn 等进行 OAuth 和 OAuth2 API 调用?

使用 cors、express 和 google api 的 Node.js 服务器应用程序在 Azure 部署后无法正常工作

如何检查Google客户端API密钥是否对Google PHP API库有效?

google adwords api的nodejs库[关闭]