2016-03-25 3 views
0

Я пытаюсь получить изображение самого высокого качества для каждого элемента, возвращаемого запросом GetSellerList. Изображения HQ можно просмотреть вручную, щелкнув изображение на странице продукта (так что я знаю, что они существуют).Grabbing A Large Image With Ebay API GetSellerList

К сожалению, только изображения среднего размера. Я googled и googled, только для того, чтобы найти много упоминаний о SelectorOutput, которые могут использоваться только в API поиска, и это совершенно не имеет отношения к тому, что я пытаюсь сделать.

Вот мой вклад XML (обратите внимание, что мои аутентификации позаботятся с библиотекой Js я использую):

var xml = '<?xml version="1.0" encoding="UTF-8"?>' + 
     '<GetSellerListRequest xmlns="urn:ebay:apis:eBLBaseComponents">' + 
      '<RequesterCredentials>' + 
      '<eBayAuthToken> <!-- my ebayAuthToken -->' + 
      '</RequesterCredentials>' + 
      '<UserID>samurai-gardens</UserID>' + 
      '<StartTimeFrom>2016-01-01T23:35:27.000Z</StartTimeFrom>' + 
      '<StartTimeTo>2016-02-01T23:35:27.000Z</StartTimeTo>' + 
      '<DetailLevel>ItemReturnDescription</DetailLevel>' + 
      '<Pagination ComplexType="PaginationType">' + 
      '<EntriesPerPage>10</EntriesPerPage>' + 
     '<PageNumber>1</PageNumber>' + 
     '</Pagination>' + 
     '</GetSellerListRequest>"'; 

Я получаю правильный вывод, я просто не понимаю, как я могу потяните большие изображения с этим. Спасибо ebay за супер разочарование апи!

+1

Трудно найти информацию по этой теме. Я думал, что они могут фактически ограничить эту способность, чтобы люди не использовали eBay как репозиторий фото продукта. Вы рассматривали разложение URL-адреса изображения, когда вы нажимаете изображение на веб-сайте eBay? Я думаю, если вы знаете URL-адрес корневого EPS, который вы можете получить без труда, и как создается URL-адрес eBay для запроса большого изображения, вы можете получить данные, которые вы ищете. –

+1

Вам нужно найти источник страниц eBay, чтобы найти фактический URL-адрес изображения, но я вижу, что каждое изображение с высоким разрешением имеет имя s-l1600.jpg. Это может быть совпадением, поскольку я проверял только 3 случайных списка. URL-адрес формы http://i.ebayimg.com/images/g/dCMAAOSwMzVTxANQ/s-l1600.jpg Я не уверен, что весь этот URL-адрес - это то, что вы возвращаете с вашего запроса. Другое замечание: изображения L1600 всегда говорят, что они являются родными 1600 x 1600, что может указывать на наличие связи между соглашением об именах и разрешением изображения. Возможно, это даст вам строку, на которую можно потянуть. –

+0

Спасибо за ваш ответ Нейт.Это примерный URL-адрес изображения, который я возвращаю: i.ebayimg.com/00/s/ODAwWDYyOQ==/z/3eEAAOSwSdZWdJRL/$_1.JPG?set_id=880000500F Я не уверен, могу ли я манипулировать этим URL или каким образом для возврата 1600 x 1600. Ваш метод действительно покрыт другой потоком stackoverflow, который я помню. – bmills

ответ

1

Просто чтобы прояснить комментарии, размещенные на этом вопросе:

Для получения изображения высокого разрешения, связанного с продуктом листинга выполнить следующие действия ..

Использование в GetSellerRequest в таком формате ниже, чтобы получить URL изображения из Этот пункт подробности:

var xml = '<?xml version="1.0" encoding="UTF-8"?>' + 
     '<GetSellerListRequest xmlns="urn:ebay:apis:eBLBaseComponents">' + 
      '<RequesterCredentials>' + 
      '<eBayAuthToken> <!-- my ebayAuthToken -->' + 
      '</RequesterCredentials>' + 
      '<UserID>samurai-gardens</UserID>' + 
      '<StartTimeFrom>2016-01-01T23:35:27.000Z</StartTimeFrom>' + 
      '<StartTimeTo>2016-02-01T23:35:27.000Z</StartTimeTo>' + 
      '<DetailLevel>ItemReturnDescription</DetailLevel>' + 
      '<Pagination ComplexType="PaginationType">' + 
      '<EntriesPerPage>10</EntriesPerPage>' + 
     '<PageNumber>1</PageNumber>' + 
     '</Pagination>' + 
     '</GetSellerListRequest>"'; 

Это должно стать первым URL-адрес, например, следующее:

i.ebayimg.com/00/s/ODAwWDYyOQ==/z/3eEAAOSwSdZWdJRL/$_1.JPG?set_id=880000500F 

После того, как этот URL получен, его необходимо изменить, чтобы указать на изображение с высоким разрешением. Посредством проб и ошибок это выглядит как .JPG-изображения 3 или 57 (и, возможно, другие). Каждое изображение имеет разные выравнивания, что является причиной множества вариантов «высокого разрешения». Изменение возвращенного URL с использованием стандартных методов манипуляции строки, чтобы получить следующее:

i.ebayimg.com/00/s/ODAwWDYyOQ==/z/3eEAAOSwSdZWdJRL/$_3.JPG 

Это может быть получен следующим образом (в C#). Отрывок ниже не был протестирован. Убедитесь, что в подстроке нет одной ошибки. Есть множество способов сделать это, это просто случается, что я думал ..

string url = "i.ebayimg.com/00/s/ODAwWDYyOQ==/z/3eEAAOSwSdZWdJRL/$_1.JPG?set_id=880000500F"; 
int index = url.LastIndexOf(Convert.ToChar(@"/"); 
url = url.Substring(0,index+1); 
url = url + @"/$_3.JPG"; 

Если вы используете C# (который я понимаю оригинальный пост был для JavaScript), вы можете использовать информацию в следующем нить, чтобы получить поток изображения из URL: URL to Stream

Вот пост для отображения изображения из URL с помощью Javascript: URL To Display Javascript

+0

Существует интересное неофициальное объяснение того, что здесь означают магические числа: https://forums.developer.ebay.com/questions/12284/get-larger-images-via-getmultipleitems-call-option.html#answer-12740 – jthompson

Смежные вопросы