Я использую библиотеку Python gdata
для удаления удаленных контактов, и я просто получаю ошибку "If-Match или If-None-Match header или entry etag attribute".
Я думаю, что проблема возникла, когда мне пришлось включить API-интерфейс "Контакты" в консоли (который до нескольких дней назад не требовался?).
ИЗМЕНИТЬ
Фактически это не срабатывает как для обновления, так и для удаления операций. Загруженная вставка отлично работает.
Пробовал задавать заголовок If-Match
, но он все еще не работает:
custom_headers = atom.client.CustomHeaders(**{'If-Match': '*'})
request_feed = gdata.contacts.data.ContactsFeed()
request_feed.AddDelete(entry=contact, batch_id_string='delete')
response_feed = self.gd_client.ExecuteBatch(
request_feed,
'https://www.google.com/m8/feeds/contacts/default/full/batch',
custom_headers=custom_headers
)
Также создан билет на странице проекта, но я сомневаюсь, что он привлечет к нему внимание.
ИЗМЕНИТЬ 2:
Использование метода Batch
с force=True
(который просто добавляет заголовок If-Match: *
) - это тот же результат.
response_feed = self.gd_client.Batch(
request_feed,
uri='https://www.google.com/m8/feeds/contacts/default/full/batch',
force=True
)
* Может ли кто-нибудь проверить это? Мне никогда не приходилось включать его в консоль раньше, и мое приложение не могло использовать API контактов без проблем, и я считаю, что он даже не был доступен раньше. Я был удивлен, увидев это вчера.