Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> eBay, Trading API, получить Token, Получить Token пользователя на eBay 
V
    Опции темы
zve4202
Дата 16.8.2017, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.9.2014

Репутация: нет
Всего: нет



Программисты, Help!!!
Все мозги разбил на части, все извилины заплёл, пока пытался понять как получить token пользователя в Trading API на eBay.  
(читал тут  http://developer.ebay.com/Devzone/XML/docs/HowTo/index.html ) ползал по ссылкам, и тп...
в общих чертах понятно, но как до дела доходит, как  smile колобок - "ничего не понимаю!".
Вот к примеру код:
Код

procedure TForm2.cxButton1Click(Sender: TObject);
var
    request_header: TStrings;
    request_body, response_body: TStringStream;
    Http: TclHttp;
    xml: TNativeXml;
begin
    cxMemo1.Clear;
    Application.ProcessMessages;
    Http := TclHttp.Create(nil);
    Http.SilentHTTP := True;
    Http.TimeOut := 5000;
    Http.UseTLS:= ctAutomatic;
    response_body := TStringStream.Create;
    try
        request_header := TStringList.Create();
        try
            request_header.NameValueSeparator := ':';
            request_header.Values['X-EBAY-API-SITEID'] := '0';
            request_header.Values['X-EBAY-API-COMPATIBILITY-LEVEL'] := '967';
            request_header.Values['X-EBAY-API-CALL-NAME'] := 'GetSessionID';
            request_header.Values['X-EBAY-API-APP-NAME'] := AppID;
            request_header.Values['X-EBAY-API-DEV-NAME'] := DevID;
            request_header.Values['X-EBAY-API-CERT-NAME'] := SertID;
            request_header.Values['Content-Type'] := 'text/xml';

            cxMemo1.Lines.AddStrings(request_header);
            Request.HeaderSource := request_header;
            cxMemo1.Lines.Add(StringOfChar('=', 50));

            xml := TNativeXml.CreateName('GetSessionIDRequest');
            xml.IndentString := #9;
            xml.Root.AttributeAdd('xmlns', 'urn:ebay:apis:eBLBaseComponents');
            xml.Root.NodeNew('ErrorLanguage').ValueAsString := 'en_US';
            xml.Root.NodeNew('WarningLevel').ValueAsString := 'High';
            xml.Root.NodeNew('RuName').ValueAsString := ebay_ru_name;

            xml.XmlFormat := xfReadable;
            cxMemo1.Lines.Add(xml.WriteToString);
            cxMemo1.Lines.Add(StringOfChar('=', 50));
            xml.XmlFormat := xfCompact;
            Application.ProcessMessages;
            request_body := TStringStream.Create;
            xml.SaveToStream(request_body);
            Http.SendRequest('POST', 'https://api.sandbox.ebay.com/ws/api.dll', request_header, request_body, response_body);
            cxMemo1.Lines.Add(IntToStr(Http.StatusCode) + ' ' + Http.StatusText);
            cxMemo1.Lines.Add(StringOfChar('=', 50));
        finally
            request_header.Free();
        end;
        xml.LoadFromStream(response_body);
        xml.XmlFormat := xfReadable;
        cxMemo1.Lines.Add(DateTimeToStr(xml.Root.NodeByName('Timestamp').ValueAsDateTime));
        cxMemo1.Lines.Add(trim(xml.WriteToString));
    finally
        Http.Free;
        Request.Free;
        response_body.Free();
    end;
end;

приходит такой ответ:
Код

<?xml version="1.0" encoding="UTF-8"?>
<GetSessionIDResponse xmlns="urn:ebay:apis:eBLBaseComponents">
    <Timestamp>2017-08-16T15:57:07.388Z</Timestamp>
    <Ack>Failure</Ack>
    <Errors>
        <ShortMessage>Input transfer has been terminated because your request timed out.</ShortMessage>
        <LongMessage>Input transfer has been terminated because your request timed out.</LongMessage>
        <ErrorCode>21359</ErrorCode>
        <SeverityCode>Error</SeverityCode>
        <ErrorParameters ParamID="0">
            <Value>Please try again.</Value>
        </ErrorParameters>
        <ErrorClassification>SystemError</ErrorClassification>
    </Errors>
    <Version>989</Version>
    <Build>E989_CORE_API_18131074_R1</Build>
</GetSessionIDResponse>

при этом делаю тоже самое на их пробнике (тут https://developer.ebay.com/DevZone/build-te...;variation=xml) и всё отрабатывает великолепно:
Код

<?xml version="1.0" encoding="UTF-8"?>
<GetSessionIDResponse xmlns="urn:ebay:apis:eBLBaseComponents">
  <Timestamp>2017-08-16T16:03:08.823Z</Timestamp>
  <Ack>Success</Ack>
  <Version>989</Version>
  <Build>E989_CORE_API_18131074_R1</Build>
  <SessionID>fkcEAA**ebc8c17815d0a471d2306330ffffebc3</SessionID>
</GetSessionIDResponse>


smile  Помогите!!!  

Это сообщение отредактировал(а) zve4202 - 17.8.2017, 12:21
PM MAIL   Вверх
zve4202
Дата 18.8.2017, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.9.2014

Репутация: нет
Всего: нет



Вопрос решён))) Проблема была в компонентах
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1107 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.