Обновление API контактов Google с помощью JSON - PullRequest
11 голосов
/ 18 декабря 2009

С помощью API контактов Google вы можете получить контактную информацию с помощью JSON, но есть ли способ обновить ее с помощью JSON? Мои попытки не увенчались успехом, и я продолжаю получать сообщение об ошибке «содержимое не разрешено в прологе», когда я пытаюсь (по-видимому, это означает, что они ожидают XML в запросе PUT).

По запросу GET я получаю следующий URL: http://www.google.com/m8/feeds/contacts/user@gmail.com/full?alt=json

Когда я хочу обновить контакт с помощью XML, я помещаю URL-адрес следующего типа (он зависит от того, какой контакт обновляется): http://www.google.com/m8/feeds/contacts/user@gmail.com/base/0

Я пытался добавить alt = json в запрос PUT, но это был просто удар в темноте, так как я не нашел никакой фактической документации, подтверждающей, что обновление с использованием JSON возможно. Я делаю это взаимодействие в JS из аддона Firefox, поэтому я предпочитаю использовать JSON (до этого момента я работал с E4X и нашел его довольно неудобным).

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

5 голосов
/ 18 декабря 2009

Я не вижу следов "обновить контакт Google, используя JSON в PUT".

Руководство разработчика Google говорит:

Чтобы обновить существующий контакт, сначала получить запись, которую вы хотите обновить, изменить его, а затем отправить запрос PUT с обновленной записью в сообщении тело к URL редактирования контакта. использование тип содержимого application / atom + xml

(от http://code.google.com/apis/contacts/docs/3.0/developers_guide_protocol.html#Updating)

0 голосов
/ 31 августа 2018

Несмотря на то, что он не документирует PUT контакт в формате json, я попытался успешно вот так:

Заголовок запроса:

PUT https://www.google.com/m8/feeds/contacts/default/full/{contactId}?alt=json
Content-Type: application/json

Тело запроса:

{
  "entry":{
    "gd$name": {
      "gd$fullName": {
        "$t": "My Name"
      },
      "gd$givenName": {
        "$t": "My"
      },
      "gd$familyName": {
        "$t": "Name"
      }
    }
  }
}

Основная идея заключается в использовании формата, аналогичного результату GET с alt=json.

Однако в случае Пакетные операции для контактов я получу сообщение об ошибке Unsupported Output Format.

Надеюсь, что это полезно для парней, которые хотят использовать Google Contacts API с JSON.

...