Получить контакт Google на основе идентификатора контакта

Когда я отправляю запрос контактов, чтобы получить все контакты пользователя, я получаю идентификаторы контактов в форме:

http://www.google.com/m8/feeds/contacts/sometestaccount%40gmail.com/base/4f822c758a541b6b

Читая api 3.0 контактов Google, я немного запутался в том, какой uri следует использовать для удаления контакта. Делает:

var cr = new ContactsRequest(settings);
var uri = new Uri("http://www.google.com/m8/feeds/contacts/sometestaccount%40gmail.com/base/4f822c758a541b6b");
var contact = cr.Retrieve<Contact>(uri);
cr.Delete(contact);

терпит неудачу с

Google.GData.Client.GDataRequestException : Execution of request returned unexpected result: http://www.google.com/m8/feeds/contacts/sometestaccount%40gmail.com/base/4f822c758a541b6b?max-results=50MovedPermanently

Как правильно получить идентификатор контакта и запросить удаление контакта? Заранее спасибо.


person kaiseroskilo    schedule 16.05.2014    source источник


Ответы (1)


Я провел небольшое исследование по этому поводу и обнаружил 2 ошибки.

1) Я получил сообщение "Перемещено навсегда, потому что я отправил свой запрос в http, а я должен был сделать это через https.

2) Формат uri строго:

https://www.google.com/m8/feeds/contacts/{userEmail}/full/{contactId}

У меня был setting.Pagesize = 50, из-за чего мой uri был

https://www.google.com/m8/feeds/contacts/{userEmail}/full/{contactId}?max-results=50

который является недопустимым и возвращает неверный запрос 400.

Идентификатор контакта - это хэш-код, который вы получаете от контакта. Идентификатор результата uri. После того, как вы получите контактную запись, удаление будет таким, как описано в google api contacts v3.0.

person kaiseroskilo    schedule 19.05.2014