Google PeopleApi - CreateContact 方法参数无效

Google PeopleApi - CreateContact method invalid argument

我正在尝试从我的应用程序创建联系人,但文档太可怕了!

我根据通过表单

收到的数据构建联系人对象
var contact = {
  names: [
    {
      displayName: body.name
    }
  ],
  phoneNumbers: [
    {
      value: body.phone
    }
  ],
  biographies: [
    {
      value: body.notes
    }
  ],
  userDefined: [
  {
      value: body.snif
    },
    {
      value: body.position
    },
    {
      value: body.sms
    },
    {
      value: body.whatsapp
    }
  ]
};

并尝试提出请求,但我不知道出了什么问题

const service = google.people({version: 'v1', auth});
service.people.createContact({
    parent: 'people/me', 
    resource: contact
}, {}, function(err, res) {
    console.log(err)
});

我得到 400 INVALID_ARGUMENTS

errors:
[ { message: 'Request contains an invalid argument.',
   domain: 'global',
   reason: 'badRequest' } ] };

Node.js、ExpressJs

请问我做错了什么?

这个修改怎么样?

修改点:

  • 错误原因是不是值的键。对于userDefined的属性,请添加key的属性。
    • 由此,您可以使用键检索值。

修改后的脚本:

请修改userDefined如下。这些是示例密钥。所以请根据您的情况修改它们。

userDefined: [
  {
    value: body.snif,
    key: "snif", // Added
  },
  {
    value: body.position,
    key: "position", // Added
  },
  {
    value: body.sms,
    key: "sms", // Added
  },
  {
    value: body.whatsapp,
    key: "whatsapp", // Added
  },
],

另外如果你想获取API的响应,修改如下如何?

service.people.createContact({
  parent: 'people/me',
  resource: contact,
}, {}, function(err, res) {
    if (err) {
      console.log(err.errors);
      return;
    }
    console.log(res.data);
});

注:

  • 此修改后的脚本假定您可以使用 API 和范围来创建联系人。

参考文献:

如果我误解了你的问题,请告诉我。我想修改一下。