API контактов Google "Неверный запрос". 400 ошибка при смене имени - PullRequest
0 голосов
/ 22 апреля 2019

Обновление контакта через API контактов Google завершается неудачно при попытке изменить имя контакта только без каких-либо других изменений (кроме времени обновления).

Важное примечание: Когда изменение имени отправляется вместе с изменением адреса электронной почты или номера телефона, это происходит успешно ... только когда изменение имени отправляется отдельно, возникает ошибка.Например, изменение имени контакта и изменение 1 символа в адресе электронной почты (или номере телефона) делает запрос успешным.

Ответ от сервера Google (http_code 400): «Неверный запрос».

<entry
xmlns="http://www.w3.org/2005/Atom"
xmlns:gd="http://schemas.google.com/g/2005" gd:etag="*">
<id>http://www.google.com/m8/feeds/contacts/example%40gmail.com/base/realcontactidhere</id>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/contact/2008#contact"/>
<title>SameFirst DifferentLast</title>
<updated>2019-04-22T18:55:59+00:00</updated>
<gd:name>
    <gd:givenName>SameFirst</gd:givenName>
    <gd:familyName>DifferentLast</gd:familyName>
    <gd:fullName>SameFirst DifferentLast</gd:fullName>
</gd:name>
<gd:phoneNumber rel="http://schemas.google.com/g/2005#mobile">+1 555 555 5555</gd:phoneNumber>
<gd:email rel="http://schemas.google.com/g/2005#work" displayName="SameFirst DifferentLast" address="SameFirstDifferentLast@example.com" />
<link rel="http://schemas.google.com/contacts/2008/rel#photo" type="image/*" href="https://www.google.com/m8/feeds/photos/media/example%40gmail.com/realcontactidhere?v=3.0"/>
<link rel="self" type="application/atom+xml" href="https://www.google.com/m8/feeds/contacts/example%40gmail.com/full/realcontactidhere?v=3.0"/>
<link rel="edit" type="application/atom+xml" href="https://www.google.com/m8/feeds/contacts/example%40gmail.com/full/realcontactidhere?v=3.0"/>

Самое странное, что я видел ... не уверен, куда идти дальше.Есть предложения?

1 Ответ

0 голосов
/ 22 апреля 2019

Решение, которое потребовалось всего всего дня, чтобы выяснить:

При изменении имени контакта только и ничего больше, свойство displayName должно бытьудалены из XML, который вы отправляете в Google.

Это будет успешно:

<gd:email rel="http://schemas.google.com/g/2005#work" address="SameFirstDifferentLast@example.com" />

Это не удастся:

<gd:email rel="http://schemas.google.com/g/2005#work" displayName="SameFirst DifferentLast" address="SameFirstDifferentLast@example.com" />
...