Я нуб с PHP, я читал несколько PHP уроки, но ни один из них не очень глубоки, они все довольно бесполезно.
может кто-нибудь объяснить мне, как на самом деле получить рабочий PHP скрипт, который может прочитать современные рыночные данные от Кракена?
и / или объяснить, что приведенный выше код делает именно?
получение:
Фатальная ошибка: Uncaught исключение «KrakenAPIException» с ошибкой CURL сообщение»: проблемы с сертификатами SSL, убедитесь, что сертификат CA в порядке. Подробности: Ошибка: 14090086: SSL процедуры: SSL3_GET_SERVER_CERTIFICATE: сертификат верифицировать не удалось»в /home/a3340896/public_html/KrakenAPIClient.php:94 трассировки стека: # 0 /home/a3340896/public_html/kraken.php(9): KrakenAPI->QueryPublic () {# 1} Основной брошен в /home/a3340896/public_html/KrakenAPIClient.php на линии 94
по какой-то причине должен сделать с помощью SSL убедитесь, что я должен установить его в FALSE apperantly, это риск для безопасности?
Почему это не работает, когда я установить его так?
Функция __construct ($ ключ, $ секрет, $ URL = 'https: //api.kraken.com', $ версии = '0', $ sslverify = ложь)
Как OP:
KrakenAPIClient.php
PHP
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
Отчет об ошибках(-1);
/ **
* Ссылка для реализации REST API Кракена в.
*
* См https://www.kraken.com/help/api для получения дополнительной информации.
*
*
* The MIT License (MIT)
*
* Copyright (с) 2013 Payward, Inc
*
* Разрешение Настоящим предоставляется бесплатно, любому лицу, приобретающему копию
* Данного программного обеспечения и связанных с ними файлов документации ( «Программное обеспечение»), для решения
* Программное обеспечение без ограничений, в том числе, без ограничения прав
* Использовать, копировать, изменять, объединять, публиковать, распространять, сублицензировать и / или продавать
* копии программного обеспечения, а также разрешать лицам, которым данное программное обеспечение
* Мебель, чтобы сделать это, при соблюдении следующих условий:
*
* Приведенное выше уведомление об авторских правах и данное разрешение должно быть включено в
* Все копии или существенные части Программного обеспечения.
*
* ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ, явных или
* ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИИ КОММЕРЧЕСКОЙ,
* ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ. НИ ПРИ ОБСТОЯТЕЛЬСТВАХ
* АВТОРЫ ИЛИ ВЛАДЕЛЬЦЫ АВТОРСКИХ ПРАВ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГИЕ
* ОТВЕТСТВЕННОСТЬ, В действии контракта, деликт или иным образом, ВОЗНИКАЮЩЕМ ИЗ,
* ИЗ ИЛИ В СВЯЗИ С SOFTWARE ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ
* ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.
* /
класс KrakenAPIException продолжается ErrorException {};
класс KrakenAPI
{
защищенный $ ключ; // ключ API
защищенный $ секрет; // API секрет
защищенный $ URL; // API базы URL
защищенный $ версия; // версия API
защищенный $ завиток; // завиток ручки
/ **
* Конструктор для KrakenAPI
*
* @param строка $ ключ ключ API
* @param строка $ секретный API секрет
* @param строка $ URL базы URL для Kraken API
* @param строка версия $ версия API
* @param BOOL $ sslverify включить / отключить SSL пэра проверки. отключить при использовании beta.api.kraken.com
* /
функция __construct($ ключ, $ секрет, $ URLзнак равно'Https://api.kraken.com', $ версиязнак равно'0', $ sslverifyзнак равноложный)
{
$ this-->ключ знак равно $ ключ;
$ this-->секрет знак равно $ секрет;
$ this-->URL знак равно $ URL;
$ this-->версия знак равно $ версия;
$ this-->локон знак равно curl_init();
curl_setopt_array($ this-->локон, массив (
CURLOPT_SSL_VERIFYPEER знак равно> $ sslverify,
CURLOPT_SSL_VERIFYHOST знак равно> 2,
CURLOPT_USERAGENT знак равно> 'Агент Kraken PHP API',
CURLOPT_POST знак равно> правда,
CURLOPT_RETURNTRANSFER знак равно> правда)
);
}
функция __destruct()
{
curl_close($ this-->локон);
}
/ **
* Запрос публичные методы
*
* @param строка $ имя метода метода
* Параметры запроса @param массив $ запрос
* Результат запроса @return массив на успех
* @throws KrakenAPIException
* /
функция QueryPublic($ метод, массив $ запрос = Массив ())
{
// создать строку POST данных
$ PostData знак равно http_build_query($ запрос, «», '&');
// Сделать запрос
curl_setopt($ this-->локон, CURLOPT_URL, $ this-->URL . '/' . $ this-->версия . '/ Государственные /' . $ метод);
curl_setopt($ this-->локон, CURLOPT_POSTFIELDS, $ PostData);
curl_setopt($ this-->локон, CURLOPT_HTTPHEADER, Массив ());
$ результат знак равно curl_exec($ this-->локон);
если($ результат===ложный)
бросить новый KrakenAPIException('CURL ошибка:' . curl_error($ this-->локон));
// Результаты декодирования
$ результат знак равно json_decode($ результат, правда);
если(!is_array($ результат))
бросить новый KrakenAPIException(«Ошибка декодирования JSON»);
вернуть $ результат;
}
/ **
* Запрос частные методы
*
* @param строка $ Метод путь путь
* Параметры запроса @param массив $ запрос
* Результат запроса @return массив на успех
* @throws KrakenAPIException
* /
функция QueryPrivate($ метод, массив $ запрос = Массив ())
{
если (! Исеть ($ запрос[«Одноразовое значение»])) {
// генерировать 64-битный одноразовый номер с помощью временной метки с разрешением микросекунды
// строковые функции используются, чтобы избежать проблем на 32-битных системах
$ нонс знак равно взрываться(«», микропоры());
$ запрос[«Одноразовое значение»знак равно $ нонс[1]. str_pad(зиЬзЬг($ нонс[0], 2, 6), 6, '0');
}
// создать строку POST данных
$ PostData знак равно http_build_query($ запрос, «», '&');
// Набор ключей API и подписать сообщение
$ путь знак равно '/' . $ this-->версия . '/частный/' . $ метод;
знак $ знак равно hash_hmac('Sha512', $ путь . гашиш('Sha256', $ запрос[«Одноразовое значение»]. $ PostData, правда), base64_decode($ this-->секрет), правда);
$ заголовки = Массив (
'API-Key:' . $ this-->ключ,
'API-Sign:' . base64_encode(знак $)
);
// Сделать запрос
curl_setopt($ this-->локон, CURLOPT_URL, $ this-->URL . $ путь);
curl_setopt($ this-->локон, CURLOPT_POSTFIELDS, $ PostData);
curl_setopt($ this-->локон, CURLOPT_HTTPHEADER, $ заголовки);
$ результат знак равно curl_exec($ this-->локон);
если($ результат===ложный)
бросить новый KrakenAPIException('CURL ошибка:' . curl_error($ this-->локон));
// Результаты декодирования
$ результат знак равно json_decode($ результат, правда);
если(!is_array($ результат))
бросить новый KrakenAPIException(«Ошибка декодирования JSON»);
вернуть $ результат;
}
}
Kraken.php
PHP
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
Отчет об ошибках(-1);
require_once 'KrakenAPIClient.php';
$ Кракен = новый KrakenAPI('KEY', 'SECRET');
$ Рез знак равно $ Кракен->QueryPublic('Бегущая строка', массив («Пара» знак равно> 'XXBTZEUR'));
эхо $ Рез[«Результат»] ["XXBTZEUR"] [«А»] [0];
print_r($ Рез);
Он работает в настоящее время, но только с помощью SSL-инвалида ... (и я понятия не имею, как это работает, я просто скопировать-вставить его в основном).