Обновление API контактов Google с помощью JSON

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

По запросу GET я ПОЛУЧАЮ со следующего URL-адреса: http://www.google.com/m8/feeds/contacts/[email protected]/full?alt=json

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

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

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


person jpcamara    schedule 18.12.2009    source источник


Ответы (2)


Я не вижу следов «обновить контакт Google с помощью JSON в PUT».

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

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

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

person zmila    schedule 18.12.2009

Хотя он не документирует 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.

person hankchiutw    schedule 31.08.2018