Как создать новый контакт с контактами Google api v3 - используя javascript

Даже если эта проблема поднималась много раз за последний год, она еще не решена правильно... особенно при использовании последней версии googleapis lib! Google doc бесполезен, так как многие устаревшие методы до сих пор упоминаются, а примеры javascript не приводятся...

используя people.get() (после списка ()) я могу получить представление о том, как это должно быть (я думаю)

    {
    "resourceName":"people/c3451490284670017263",
    "etag":"%EgcBAggJNyUuGgwBAgMEBQYHCAkKCwwiDHVtR0Y5OHZVMnhJPQ==",
    "locales":[{"metadata":{"primary":true,"source":{"type":"CONTACT","id":"2fe628208b77deef"}},"value":"en"}],
    "emailAddresses":[{"metadata":{"primary":true,"source":{"type":"CONTACT","id":"2fe628208b77deef"}},"value":"john.doe@example.com"]
    }

поэтому я попытался создать новых людей таким образом:

    return google.people('v1').people.createContact({
      auth: jwtClient,
      resourceName: 'people/me',
      locales: ['en'],
      genders: ['female'],
      names: [{givenName: 'Jenny', familyName: 'Doe'}],
      emailAddresses: ['jenny.doe@example.com']
    })

но нет пути... я всегда получаю ошибки:

        Invalid JSON payload received. Unknown name \"genders\": Cannot bind query parameter. Field 'genders' could not be found in request message.
        Invalid JSON payload received. Unknown name \"locales\": Cannot bind query parameter. Field 'locales' could not be found in request message.
        Invalid JSON payload received. Unknown name \"names[familyName]\": Cannot bind query parameter. Field 'names[familyName]' could not be found in request message.
        Invalid JSON payload received. Unknown name \"emailAddresses\": Cannot bind query parameter. Field 'emailAddresses' could not be found in request message.
        Invalid JSON payload received. Unknown name \"names[givenName]\": Cannot bind query parameter. Field 'names[givenName]' could not be found in request message.
        Invalid JSON payload received. Unknown name \"resourceName\":Cannot bind query parameter. Field 'resourceName' could not be found in request message.

Есть ли какой-либо пример в Интернете?

обратная связь приветствуется... (даже от человека Google... LOL)

1 ответ

После двойной проверки (возможно, тройной...) документации я прочитал следующее утверждение

    Usage
    Specifying request body
    The body of the request is specified in the requestBody parameter object of the request. The body is specified as a JavaScript object with key/value pairs. For example, this sample creates a watcher that posts notifications to a Google Cloud Pub/Sub topic when emails are sent to a gmail account:

    const res = await gmail.users.watch({
      userId: 'me',
      requestBody: {
        // Replace with `projects/${PROJECT_ID}/topics/${TOPIC_NAME}`
        topicName: `projects/el-gato/topics/gmail`
      }
    });
    console.log(res.data);

поэтому я написал:

    return google.people('v1').people.createContact({
      auth: jwtClient,
      parent: 'people/me',
      requestBody: {
        locales: [{ value: 'en' }],
        genders: [{ value: 'female' }],
        names: [{ givenName: 'Jenny', familyName: 'Doe' }],
        emailAddresses: [{ value: 'jenny.doe@example.com' }]            
      }
    })

И запрос выполняется без каких-либо ошибок... Я вижу новый контакт в приложении Google учетной записи Google Контакты..

Другие вопросы по тегам