NodeJS 使用日历时,Google API返回400代码的原因是什么

ffscu2ro  于 2022-11-29  发布在  Node.js
关注(0)|答案(1)|浏览(151)

我在使用Google API并尝试与Google日历交互时遇到了一些问题。在尝试插入新日历ID时,出现了缺少资源400错误。
下面是错误JSON的一个片段(由于一些敏感元素,我不能包括所有内容),我不知道它抱怨的 * 什么 * 缺少资源。

code: 400,
errors: [
    {
      domain: 'global',
      reason: 'required',
      message: 'Missing resource.'
    }
]

导致此问题的代码如下所示(有些代码被省略):

const { google } = require('googleapis');
const { googlePrivateKey, googleClientEmail, googleProjectNumber } = require('../../config.json');
const SCOPES = ['https://www.googleapis.com/auth/calendar'];
//OMITTED SECTION
const jwtClient = new google.auth.JWT(
    googleClientEmail,
    './keyfile.json',
    googlePrivateKey,
    SCOPES,
);

const calendar = new google.calendar({
    version: 'v3',
    project: googleProjectNumber,
    auth: jwtClient,
});

calendar.calendarList.insert({
    id: name,
    // 'description': description,
});

引用的变量来自周围的其他代码或现有的config.json文件(由于其中包含的信息的敏感性而没有包括在内)。config.json中的信息已知是有效的(我能够使用另一段代码发出请求以检索日历列表,响应为200,这里没有显示)。
我已经看了尽可能多的文件,我可以找到,但我似乎不能发现任何信息,我错过了/做错了什么。

tp5buhyn

tp5buhyn1#

在您的脚本中,如何进行以下修改?

发件人:

calendar.calendarList.insert({
    id: name,
    // 'description': description,
});

收件人:

const name = "###"; // Please set your calendar ID.
calendar.calendarList.insert(
  {
    resource: { id: name },
  },
  (err, res) => {
    if (err) {
      console.log(err.errors);
      return;
    }
    console.log(res.data);
  }
);
  • 请将预期的日历ID设置为name。如果此值不正确,则会出现类似“找不到”的错误。请注意。

参考:

相关问题