Я пытаюсь написать приложение ruby для обновления Google Contact Photos, но не могу загрузить загрузку.Я не уверен, что я неправильно понял API Google, но это то, что я имею до сих пор:
Net::HTTP.start(URI.parse(image_element.attributes['href']).host) do |http|
response, body = http.put(URI.parse(image_element.attributes['href']).path, data, {'If-Match' => '*', 'content-type'=>'image/*'})
end
API данных Google говорит:
У каждого контакта есть элемент ссылки на фотографию,Он имеет вид:
href = 'https://www.google.com/m8/feeds/photos/media/liz%40gmail.com/c9012de' gd: etag =' "KTlcZWs1bCp7ImBBPV43VUV4LXEZCXERZAc." '>
Этот элемент отображается независимо от того, есть у контакта связанная фотография или нет.Если у контакта есть фотография, то элемент содержит атрибут gd: etag, указывающий ETag для фотографии.Если у контакта нет фотографии, то нет атрибута gd: etag, а атрибут href предоставляет URL-адрес, который используется для добавления фотографии в контакт.
Чтобы добавить или обновить фотографию, используя элемент, показанный выше,отправьте новую фотографию с помощью команды PUT на URL: https://www.google.com/m8/feeds/photos/media/liz%40gmail.com/c9012de. Не забудьте установить правильный заголовок "image / *" Content-Type.
Чтобы удалить фотографию, отправьте HTTP-запрос DELETE натот же URL.
При обновлении или удалении фотографии отправьте ETag фотографии в заголовок If-Match HTTP-запроса.В качестве альтернативы, используйте If-Match: * для обновления или удаления независимо от того, установлена ли у вас последняя версия фотографии.
Может кто-нибудь увидеть, в чем проблема?
ОБНОВЛЕНИЕ ИОТВЕТ: Мне удалось заставить это работать с некоторой помощью от StackOverflow и помощника.По сути, неправильно было задано неправильное значение типа MIME (см. Ниже), но я также не прошел надлежащую аутентификацию в Google для запроса PUT.То, что я пытался написать, это сценарий, который обновляет любые недостающие фотографии контактов Google с изображениями из Gravatar (где это возможно).Как только я заработал, все заработало: удалось найти около 2-3 контактов.Я написал сообщение в блоге о сценарии на случай, если кто-нибудь захочет его запустить: http://ashleyangell.com/2011/06/ruby-script-to-import-google-contact-photos-from-gravatar/