Доступ к API Clickbank через TIdHTTP Delphi? - PullRequest
2 голосов
/ 20 мая 2011

Я пытаюсь получить доступ к API ClickBank из моего проекта Delphi, чтобы проверить, есть ли у клиента действующая подписка.

Я нашел документацию по API здесь , но Delphi нетПримеры.Поэтому я пытаюсь создать свой собственный маленький пример, однако я просто не могу понять это с помощью TIdHTTP Indy.

Может ли кто-нибудь указать мне правильное направление, возможно, создать минимальный пример?

PS: я попытался посмотреть на образец C #, но не могу перенести его на Delphi.

1 Ответ

4 голосов
/ 20 мая 2011

Образец ClickBank C # находится здесь https://sandbox.clickbank.com/api_12_examples/api_example.csharp

HttpWebRequest request = (HttpWebRequest)
    WebRequest.Create("https://api.clickbank.com/rest/1.2/orders/list");
request.Accept = "application/xml";
request.Headers.Add(HttpRequestHeader.Authorization,
        "<< DEVELOPER KEY >>:<< API KEY >>");
request.Method = "GET";

HttpWebResponse response = (HttpWebResponse) request.GetResponse();

Версия PHP https://sandbox.clickbank.com/api_12_examples/api_example.php

Вы увидите, что здесь они не слишком много настраивают ... просто устанавливают два заголовка и выполняют GET.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.clickbank.com/rest/1.2/orders/list");
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_GET, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "Accept: application/xml",
        "Authorization: << DEVELOPER KEY >>:<< API KEY >>"));
$result = curl_exec($ch);
curl_close($ch);

В Delphi - быстрая демонстрация - сбросить клиента TIdHTTP1 на форму вместе с кнопкой и заметкой. Затем по нажатию кнопки (где xxx = ваш ключ разработчика и yyy = ваш ключ API) сделайте то же самое - установите два заголовка и выполните GET:

IdHTTP1.Request.Accept := 'application/xml';
IdHTTP1.Request.CustomHeaders.Add('Authorization: xxx:yyy');
Memo1.Text := IdHTTP1.Get('https://api.clickbank.com/rest/1.2/orders/list');
...