Title: API для биржи bitfinex.com (PHP) Post by: gerzikon on September 24, 2015, 01:22:29 PM Пытаюсь создать PHP-скрипт для API биржи https://www.bitfinex.com
Прошу помочь тем кто знаком с API этой биржи. На сайте биржи есть документация https://www.bitfinex.com/pages/api (с пояснениями, но без примеров целого скрипта, как на других биржах). Делаю все вроде по этим инструкциям, но получаю ошибку. Я создал на бирже ключи, написал скрипт, но получаю такую ошибку: Code: {"message":"Invalid json."} Quote <?php В документации на сайте сказано что, к примеру, для создания нового ордера нужно делать запрос на адрес https://api.bitfinex.com/v1/order/new и формировать json такого типа$key = ""; // Ключ $secret = ""; // Секретный ключ // Формирование массива с данными $arr = array(); $arr["request"] = "/v1/account_infos"; $arr["nonce"] = time().""; // Кодирование данных в JSON-формат $payload = json_encode($arr); $payload = str_replace("\/", "/", $payload); // Хеширование $signature = hash_hmac("sha384", $payload, $secret); // Формирование массива c заголоавками headers $headers = array(); $headers[0] = "X-BFX-APIKEY: $key"; $headers[1] = "X-BFX-PAYLOAD: $payload"; $headers[2] = "X-BFX-SIGNATURE: $signature"; // Запрос $ch = curl_init("https://api.bitfinex.com/v1/account_infos"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $resultat = curl_exec($ch); // Вывод результата echo $resultat; ?> Code: { По аналогии с приведенным выше примером, json должен быть таким Code: { Code: {"message":"Invalid json."} Как модифицировать этот скрипт чтобы в него можно было в самом начале добавить свои ключи и в результате получался правильный api-запрос на https://api.bitfinex.com/v1/account_infos Или может быть у кого-то есть другой готовый скрипт, в котором можно было бы только добавить свои ключи и сделать какой-либо корректный запрос через API на биржу bitfinex.com? Title: Re: API для биржи bitfinex.com (PHP) Post by: cryptodev on September 24, 2015, 01:54:44 PM Вот это уберите:
$payload = str_replace("\/", "/", $payload); ...и инвалиды отстанут. Title: Re: API для биржи bitfinex.com (PHP) Post by: gerzikon on September 24, 2015, 02:04:44 PM Без разницы. Да и зачем убирать, если убрать то json-данные будут
Code: { Code: { Title: Re: API для биржи bitfinex.com (PHP) Post by: cryptodev on September 24, 2015, 02:20:25 PM Без разницы. Да и зачем убирать, если убрать то json-данные будут Code: { Code: { А все ж уберите. Ваш вариант тоже вполне валидный JSON, но при обработке может неправильно раскодироваться. И предположу, что проблема может оказаться в том, что вы им ваш JSON фактически не посылаете. В описании они намекают на то, что JSON ожидается в payload POST-запроса (т.е. нужно сделать что-нибудь вроде: Code: curl_setopt($ch, CURLOPT_POST, true); А что касается X-BFX-PAYLOAD хедера, то это у них для аутентификации, и в этом поле ожидается то, что вы подготовили (payload), еще и свернутое base64: payload = parameters-dictionary -> JSON encode -> base64 signature = HMAC-SHA384(payload, api-secret) as hexadecimal send (api-key, payload, signature) И для основы подписи для X-BFX-SIGNATURE тоже ожидается payload в base64. Title: Re: API для биржи bitfinex.com (PHP) Post by: gerzikon on September 24, 2015, 05:01:07 PM Спасибо, разобрался. Строчка с "str_replace" ни на что не влияет - работает и с ней и без нее. POST-данные никакие не отправлял, только добавил одну строчку
Code: $payload = base64_encode($payload); Title: Re: API для биржи bitfinex.com (PHP) Post by: Deres on September 24, 2015, 08:55:53 PM Все решили а я зря топик читал(
Title: Re: API для биржи bitfinex.com (PHP) Post by: gerzikon on September 25, 2015, 04:04:38 AM Все решили а я зря топик читал( Для вас тоже занятие найдется)То что в этой теме решили, но появилась другая проблема. Поскольку она уж очень специфическая (только для тех кто сам пользуется API этой биржи), я ее описал в этом сообщении в топике биржи Bitfinex (https://bitcointalk.org/index.php?topic=1143666.msg12513864#msg12513864) Title: Re: API для биржи bitfinex.com (PHP) Post by: hazarun on September 25, 2015, 07:51:03 PM Все решили а я зря топик читал( Для вас тоже занятие найдется)То что в этой теме решили, но появилась другая проблема. Поскольку она уж очень специфическая (только для тех кто сам пользуется API этой биржи), я ее описал в этом сообщении в топике биржи Bitfinex (https://bitcointalk.org/index.php?topic=1143666.msg12513864#msg12513864) Заметим, что проблема - еще более специфическа, чем Вы отметили. Еще нужно, не просто пользоваться АПИ этой биржи, а разбираться именно в АПИ + ПХП. )) |