google 人 API 错误代码:400,收到无效的 JSON 负载

google People API error code: 400, Invalid JSON payload received

大家好,我正在开发一个项目,该项目使用 google 人 API 使用 nodejs 和 express 服务器对经过身份验证的用户进行 crud 操作。

我能够获取所有联系人、搜索特定联系人并使用资源名称。

但我无法创建联系人组或标签。我已经阅读 google 文档好几个星期了,我遇到了错误

这是服务器的响应

                    ^

GaxiosError:收到无效的 JSON 负载。未知名称“contactGroup[name]”:无法绑定查询参数。在请求消息中找不到字段 'contactGroup[name]'。在 Gaxios。 (D:#001ADeveloperZone\workSpaces\autmarket\node_modules\gaxios\build\src\gaxios.js:73:27) 在 Generator.next () 在履行 (D:#001ADeveloperZone\workSpaces\autmarket\node_modules\gaxios\build\src\gaxios.js:16:58) 在 processTicksAndRejections(节点:internal/process/task_queues:96:5){ 回复: { 配置:{ access_token: ', refresh_token: '', url: 'https://people.googleapis.com/v1/contactGroups?contactGroup%5Bname%5D=hotmail', 方法:'POST', paramsSerializer:[函数(匿名)], headers:{ 'Accept-Encoding': 'gzip', 'User-Agent': 'google-api-nodejs-client/0.7.2 (gzip)', 授权: '', 接受:'application/json' }, params: [Object: null prototype] { contactGroup: { name: 'hotmail' } }, validateStatus:[功能(匿名)], 响应类型:'json' }, 数据: { 错误: { 代码:400, 消息:Invalid JSON payload received. Unknown name "contactGroup[name]": Cannot bind query parameter. Field 'contactGroup[name]' could not be found in request message., 错误:[ { 消息:Invalid JSON payload received. Unknown name "contactGroup[name]": Cannot bind query parameter. Field 'contactGroup[name]' could not be found in request message., 原因:'invalid' } ], 状态:'INVALID_ARGUMENT', 细节: [ { '@type': 'type.googleapis.com/google.rpc.BadRequest', fieldViolations:[数组] } ] } }, headers:{ 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"', 'cache-control': 'private', 连接:'close', 'content-encoding': 'gzip', 'content-type': 'application/json; charset=UTF-8', 日期:'Tue, 08 Mar 2022 16:27:38 GMT', 服务器:'ESF', 'transfer-encoding': 'chunked', 变化:'Origin, X-Origin, Referer', 'x-content-type-options': 'nosniff', 'x-frame-options': 'SAMEORIGIN', 'x-xss-protection': '0' }, 状态:400, 状态文本:'Bad Request' }, 配置:{ access_token: , refresh_token: '', url: 'https://people.googleapis.com/v1/contactGroups?contactGroup%5Bname%5D=hotmail', 方法:'POST', paramsSerializer:[函数(匿名)], headers:{ 'Accept-Encoding': 'gzip', 'User-Agent': 'google-api-nodejs-client/0.7.2 (gzip)', 授权: '', 接受:'application/json' }, params: [Object: null prototype] { contactGroup: { name: 'hotmail' } }, validateStatus:[功能(匿名)], 响应类型:'json' }, 代码:400, 错误:[ { 消息:Invalid JSON payload received. Unknown name "contactGroup[name]": Cannot bind query parameter. Field 'contactGroup[name]' could not be found in request message., 原因:'invalid' } ] }

这是我的代码

create_group: (req, res) => {
try {
  //create group or label
  let userGoogleContactsGroups = getGroups().then((data) =>
    JSON.parse(JSON.stringify(data))
  );
  let userGroups = userGoogleContactsGroups.then(({ contactGroups }) => {
    let names = contactGroups.map((group) => `${group.name}`);
    return names;
  });

  userGroups.then((data) => {
    if (data.includes("amazoggn")) {
      return res.status(301).json({ code: 301, mesage: "group exist" });
    } else {
      // let name =" amazoggn";
      try {     
      
          contactGroup={
            name:name 
          }
        
       let strdata  = JSON.parse(JSON.stringify({contactGroup}));

  

        let mydata = people.contactGroups.create(strdata)
        if (mydata) {
          console.log(mydata)
        } else {
          return "error occured"
        }
    
      } catch (error) {
        console.log(error)
      }
    
    }
  });
} catch (error) {
  console.log(error);
}

}

我需要这方面的帮助如何在 google 人 api

中创建联系人组

查看文档,我认为您应该在 people.contactGroups.create.

的调用中指定一个字段 requestBody

尝试这样的事情:

const res = await people.contactGroups.create({
  requestBody: {
    "contactGroup": {
      "name": "HelloWorld"
    }
  }
});