- Binance api php пример
- About
- Planw rld.ru
- Содержание
- Binance API
- Немного теории PHP.
- Собираем виджет криптовалют
- Виджет в функции WordPress
- Динамический виджет на JavaScript
- Каналы и чаты в Telegram
- 13 комментариев к “Виджет криптовалют на сайте”
- Binance API: Русское Описание, Ограничения, Примеры [2021]
- Требования
- Ключи тестовой сети
- Скачивание и установка Postman
- Создание окружающей среды
- Binance api php пример
- Users who have contributed to this file
Binance api php пример
Larislackers-BinanceApi is a Binance.com API wrapper for PHP. Moreover, the API wrapper supports all available functionality given from Binance along with sockets.
All requests are following the HTTP/1.1 protocol and all responses are returned as a PSR-7 ResponseInterface.
Tests are available after providing your key and secret in the corresponding class.
Information on how to obtain your API key and secret from Binance can be found here.
First things first, in order to use the API wrapper you should initialize it with the aforementioned key and secret like this:
Then, use the initiated object/var like this:
You may find the rest of the supported commands inside the BinanceApiContainer.
All parameters required for each function must be in array format. More information can be found in the comments (phpdoc) and the links to the corresponding functions documented at Binance.
Avoid to use hardcoded values; enums are available (for intervals, types, sides, etc) for consistency and compliance with the Binance API.
You should use your own logger (like Sentry) and catch BinanceApiException for exceptions returned from Binance API and LarislackersException for exceptions returned from Websockets.
Don’t reinvent the wheel by trying to cache results in a request lifecycle with static classes. Use a framework that supports caching (like Laravel), an extension (like Memcached) or using files. Additional information can be found here.
More information on how to use the library can be found here.
See the official API documentation for more information about the endpoints and responses.
Larislackers-BinanceApi is open-sourced software licensed under the MIT license
If you find this library to your liking and enjoy using it, please consider a donation to one of the following addresses:
- BTC: 13rSaL7ze89Pz28fNR9cNCnNVNvLWR3eFt
- ETH: 0x03d4566d13ca7c7b30c39666b1f21ff97bee3f97
- XMR: 49hxHRNwLSdQcXuCcac3ySMnAEuH4BhLWR8NddjHi6QBJHNvj1LqcSg2X8qpTQgsE1brzt37W6dLiiSN6uCj1CwyUPNr8R5
About
A PHP wrapper for the Binance API endpoints.
Источник
Planw rld.ru
Сегодня будем писать свой собственный виджет криптовалют. На выходе получится информер курса биткоин и эфириум. Данную инструкцию будет легко применить к любому сайту на PHP. Отдельно я обязательно покажу как внедрить этот виджет в WordPress.
Содержание
Binance API
Для создания нашего виджета криптовалют мы воспользуемся Binance API. Вы можете использовать любой другой API по аналогии с данным руководством. Я же остановился именно на Binance, так как меня интересуют котировки именно этой биржи. Ссылка на официальную документацию выше, вот только она полностью на английском языке.
Сегодня я буду использовать:
Обратите внимание на то, что вы можете подставить абсолютно любую, нужную вам пару. Для этого достаточно просто изменить окончание ссылки.
Это самый простой массив с ценой биткоин на сегодняшний момент. Можно вывести массив с ценами по всем монетам Binance: https://api.binance.com/api/v3/ticker/price
Также есть запросы на большее количество данных. Например, всё что происходило с парой BTC\USDT за 24 часа: https://api.binance.com/api/v1/ticker/24hr?symbol=BTCUSDT. Параметр symbol — как и в других примерах, передает значение определенной пары. В данном случае это: ?symbol=BTCUSDT. Если его в запросе не указывать, то получим ответ со всеми существующими парами Binance. Думаю пока всё понятно, да? Если что, внизу есть комментарии, не стесняемся спрашивать.
Немного теории PHP.
Если вам это не интересно, можете смело идти к следующей, практической главе. Но я посчитал нужным добавить хотя бы немного теории PHP, для того что бы прояснить код, который мы будем сегодня писать. Буквально чуть-чуть теории и переходим к созданию виджета криптовалют.
Переменные в php — своего рода контейнер, который может содержать в себе самые различные типы данных (цифры, текста, массивы и другое). В переменных мы храним данные для того, что бы в дальнейшем оперативно обращаться к информации, находящейся в них. Называются они так, потому что могут менять (данные можно записывать, изменять, удалять).
$bitcoin = «1 000 000 $» — это переменная bitcoin и в ней один миллион долларов США!
file_get_сontents() — Функция PHP, которая используется для считывания файла в строку.
json_decode — Принимает закодированную в JSON строку и преобразует её в переменную PHP.
round — Математическая функция для округления числа до целого.
Собираем виджет криптовалют
Я думаю, что теории более чем достаточно и пора переходить к практике. Сейчас мы напишем код самого простого виджета криптовалют. И начнем мы с курса биткоина.
Как видите это довольно простой php код, а самое главное он уже работает. Как говорится вставляйте и пользуйтесь на здоровье. Вот только он будет вам показывать что-то типа этого: 33684.39000000$
Надо бы округлить до целого числа, помните да, функция round. Модернизируем наш код:
Вот теперь всё отлично! Можно использовать на сайте. Другие пары делаются по аналогии. Если вам интересно, можно продолжить эту тему и сделать что-то более сложное. Пишите в комментарии.
Виджет в функции WordPress
Для тех у кого WordPress не спешите расходится. Сейчас мы создадим специальную функцию, даже две. Одну для курса биткоина, вторую соответственно для эфириума. После чего мы сможем выводить эти функции в любом месте нашего блога. Для написания функций я использую свою дочернюю тему, файл functions.php
Итак, как создать свою функцию мы конечно знаем. Нет!? Тогда идем читать, тут я не буду заострять своё внимание на нюансах создания, а просто покажу готовый код.
После чего нам остается лишь вывести наши функции в любом удобном для нас месте на блоге. В моем случае это левый сайдбар, хотя позже планирую переместить в доп. меню и оформить всё это иконками. Возможно добавить ещё парочку монет.
Для вывода, в моём случае используется следующий код:
У себя на блоге я сделал простенький php виджет:
Динамический виджет на JavaScript
У себя на блоге я использую много автообновляемых данных в отдельных постах, чтобы вам было более понятно о чём идёт речь, вот вам горячий пример:
Курс эфириума на данный момент равен:
Выше вы видите цену эфириума, которая берется по JSON с помощью Javascript. Также есть более интересные примеры, где используется не только стоимость определенного актива, но и другие данные:
Добавим немного математики, а также счетчик дней:
Давайте представим, что мы сегодня купили Биткоин на 1000$ по курсу 22 750$! Какую прибыль вы видите сейчас, во время чтения этого поста? Ведь прошло уже дн. И на вашем счету сегодня:
Как вы понимаете всё ограничивается только вашей фантазией! Если вам интересно, как создаются подобные динамические виджеты — пишите в комментариях и я буду просто обязан сделать отдельный пост! Возможно вам также понравится таблица с обновляемыми данными
Каналы и чаты в Telegram
PLANWORLD CRYPTO если вы любите криптовалюты, то этот Telegram канал для вас. Только дельные советы, когда купить, что купить, какие монеты лучше, всё это и не только на моем телеграм канале. А самое главное как всегда бесплатно
Чат Криптовалюта все любители криптовалют добро пожаловать!
Чат HYIP если вам знакомы такие вещи как H-Script, GoldCoders, HSbuilder ждём вас в нашем чате HYIP админов.
13 комментариев к “Виджет криптовалют на сайте”
привет,спасибо за виджет,но возникает проблема.к примеру XRP 0,4$ но из за функции round показыват только 0$,а если убрать round, то число очень длинное,это можно как то изменить?
Привет, конечно можно! Попробуй так:
$string .= round ($xrp[«price»], 1) . «$»; или
$string .= round ($xrp[«price»], 2) . «$»; или
$string .= round ($xrp[«price»], 3) . «$»;
Спасибо,все заработало как надо.
Еще такой вопрос,а можно сделать чтобы курс сам обновлялся ,скажем каждые 10 секунд без обновления страницы.
Да, конечно это можно сделать! Либо использовать Ajax либо как вариант писать на Javascript — у меня на блоге это реализовано во многих местах. К примеру глянь тут: https://planworld.ru/ru/crypto/stoit-li-sejchas-pokupat-ethereum.html
Если интересно могу написать об этом пост
Да,интересует. У меня движок dle c WordPress не знаком
Напиши об этом Динамический виджет на JavaScript как показано выше,также хочу сделать у себя на сайте.
как убрать лишнии цифры в конце суммы чтобы было не так 38353.70000000 а так 38353.70
Сделал немного красивее, как просили в комментарии ниже https://jsfiddle.net/gcwau10v/
понять не могу как его на сайт прикрутить,помоги.
Напишите статью про создание динамических виджетов
Источник
Binance API: Русское Описание, Ограничения, Примеры [2021]
2 мин на чтение
Цель этого руководства — мягко познакомить вас с Binance API без написания ни единой строчки кода
Binance API — Спотовая торговля с помощью Postman.
Понимание и использование API для торговли криптовалютой может открыть целый мир возможностей, когда дело доходит до входа и выхода из позиций. Обладая некоторыми простыми знаниями в области написания кода, вы можете подключиться к серверной части биржи, чтобы автоматизировать свои торговые стратегии.
Обойдя через API веб-сайт, вы можете гораздо быстрее найти соответствующий движок для высокопроизводительных приложений.
Цель этой серии руководств — познакомить вас с REST API Binance и научить, как с ним взаимодействовать.
К концу ознакомления с руководством вы должны быть уверены в своей способности запрашивать через API информацию о рынках и вашей позиции и размещать ряд различных типов ордеров.
В этой статье мы будем использовать Postman для связи с биржей. Не волнуйтесь — мы не будем рисковать реальными деньгами.
Требования
binance api
Ключи тестовой сети
Мы собираемся использовать тестовую сеть для наших целей. Это даст нам немного средств, не имеющих реальной ценности, с которыми можно поиграть. Они работают точно так же, как настоящие монеты и токены, поэтому, когда вы освоитесь с API, вы можете начать использовать его для торговли реальными средствами.
- Начните с перехода к сети Spot Test.
- Чтобы получить доступ, вам необходимо войти в систему с учетной записью GitHub. Создайте его, если вы еще этого не сделали.
- Нажмите «Аутентификация» («Sign In») и войдите в GitHub.
- В разделе «Ключи API» вы увидите, что у вас нет зарегистрированных ключей. Нажмите «Создать ключ HMAC_SHA256», чтобы создать пару.
- На следующем экране назначьте клавишам метку. Называйте их как хотите и нажмите «Создать» («Generate»).
- Вам представлены два ключа: ключ API и секретный ключ (API Key и Secret Key). Важно записать их сейчас. Если вы этого не сделаете, вам нужно будет снова запустить процесс создания ключа. Мы рекомендуем хранить их в приложении для заметок на вашем компьютере, чтобы потом их было легко скопировать.
Примечание: маркировка ваших ключей — это то, что стоит сделать при использовании реальной биржи для управления разными ключами. У вашей учетной записи может быть несколько ключей с разными разрешениями. Если вы используете несколько торговых ботов, использование отдельных ключей с описательными метками упрощает управление разрешениями или удаление отдельных ключей без изменения всех ваших ботов.
Скачивание и установка Postman
Postman — это платформа для совместной работы API. Для нас это идеальная отправная точка — у нас будет доступ к коллекциям запросов Binance, которые мы будем тестировать без необходимости писать ни одной строчки кода.
Программа доступна для Mac, Windows и Linux. Перейдите на страницу загрузок Postman и загрузите .zip файл.
После этого найдите его в проводнике и установите. Запустите приложение, и все готово! Обратите внимание, что вы можете создать учетную запись для входа в систему, но это не обязательно. Если вы хотите пропустить этот шаг, просто выберите соответствующую опцию внизу окна.
Создание окружающей среды
На этом этапе у вас должен быть интерфейс, похожий на следующий.
интерфейс binance api
Мы хотим сначала создать нашу рабочую среду. Это просто способ добавить переменные к набору запросов, с которыми мы собираемся работать.
Для этого нам сначала нужно получить некоторую информацию из репозитория Binance GitHub — загрузите .zip файл.
Скачать zip binance-spot-api-docs
Загрузка не займет много времени.
Найдите его в проводнике файлов и распакуйте. Затем мы можем вернуться в Postman.
Postman binance api
Оставайтесь на связи.
Добавляйте мой блог в закладки потому, что здесь самая правдивая и экспертная информация!
Источник
Binance api php пример
0 contributors
Users who have contributed to this file
class Binance |
< |
public $ btc_value = 0.00 ; |
protected $ base = «https://www.binance.com/api/» , $ api_key , $ api_secret ; |
public function __construct ( $ api_key , $ api_secret ) |
< |
$ this -> api_key = $ api_key ; |
$ this -> api_secret = $ api_secret ; |
> |
public function buy ( $ symbol , $ quantity , $ price , $ type = «LIMIT» ) |
< |
return $ this -> order ( «BUY» , $ symbol , $ quantity , $ price , $ type ); |
> |
public function sell ( $ symbol , $ quantity , $ price , $ type = «LIMIT» ) |
< |
return $ this -> order ( «SELL» , $ symbol , $ quantity , $ price , $ type ); |
> |
public function cancel ( $ symbol , $ orderid ) |
< |
return $ this -> signedRequest ( «v3/order» , [ «symbol» => $ symbol , «orderId» => $ orderid ], «DELETE» ); |
> |
public function orderStatus ( $ symbol , $ orderid ) |
< |
return $ this -> signedRequest ( «v3/order» , [ «symbol» => $ symbol , «orderId» => $ orderid ]); |
> |
public function openOrders ( $ symbol ) |
< |
return $ this -> signedRequest ( «v3/openOrders» , [ «symbol» => $ symbol ]); |
> |
public function orders ( $ symbol , $ limit = 500 ) |
< |
return $ this -> signedRequest ( «v3/allOrders» , [ «symbol» => $ symbol , «limit» => $ limit ]); |
> |
public function trades ( $ symbol ) |
< |
return $ this -> signedRequest ( «v3/myTrades» , [ «symbol» => $ symbol ]); |
> |
public function prices () |
< |
return $ this -> priceData ( $ this -> request ( «v1/ticker/allPrices» )); |
> |
public function bookPrices () |
< |
return $ this -> bookPriceData ( $ this -> request ( «v1/ticker/allBookTickers» )); |
> |
public function account () |
< |
return $ this -> signedRequest ( «v3/account» ); |
> |
public function depth ( $ symbol ) |
< |
return $ this -> request ( «v1/depth» , [ «symbol» => $ symbol ]); |
> |
public function balances ( $ priceData = false ) |
< |
$ balance = $ this -> signedRequest ( «v3/account» ); |
if ( empty ( $ balance [ ‘balances’ ])) < |
exit ( json_encode ( $ balance )); |
> |
return $ this -> balanceData ( $ balance , $ priceData ); |
> |
private function request ( $ url , $ params = []) |
< |
$ headers [] = «User-Agent: Mozilla/4.0 (compatible; PHP Binance API)\r\n» ; |
$ query = http_build_query ( $ params , » , ‘&’ ); |
return json_decode ( $ this -> http_request ( $ this -> base . $ url . ‘?’ . $ query , $ headers ), true ); |
> |
public function http_request ( $ url , $ headers , $ data = array ()) |
< |
$ ch = curl_init (); |
curl_setopt ( $ ch , CURLOPT_URL , $ url ); |
curl_setopt ( $ ch , CURLOPT_HTTPHEADER , $ headers ); |
curl_setopt ( $ ch , CURLOPT_SSL_VERIFYPEER , false ); |
curl_setopt ( $ ch , CURLOPT_SSL_VERIFYHOST , false ); |
if ( $ data ) < |
curl_setopt ( $ ch , CURLOPT_POST , 1 ); |
curl_setopt ( $ ch , CURLOPT_POSTFIELDS , $ data ); |
> |
curl_setopt ( $ ch , CURLOPT_RETURNTRANSFER , true ); |
curl_setopt ( $ ch , CURLOPT_FOLLOWLOCATION , 1 ); |
curl_setopt ( $ ch , CURLOPT_TIMEOUT , 5 ); |
curl_setopt ( $ ch , CURLOPT_ENCODING , «» ); |
$ content = curl_exec ( $ ch ); |
if ( curl_errno ( $ ch )) < |
$ content = false ; |
> |
curl_close ( $ ch ); |
return $ content ; |
> |
private function signedRequest ( $ url , $ params = []) |
< |
$ headers [] = «User-Agent: Mozilla/4.0 (compatible; PHP Binance API)\r\nX-MBX-APIKEY: <$this->api_key>\r\n» ; |
$ params [ ‘timestamp’ ] = number_format ( microtime ( true ) * 1000 , 0 , ‘.’ , » ); |
$ query = http_build_query ( $ params , » , ‘&’ ); |
$ signature = hash_hmac ( ‘sha256’ , $ query , $ this -> api_secret ); |
$ endpoint = «<$this->base><$url>?<$query>&signature=<$signature>» ; |
return json_decode ( $ this -> http_request ( $ endpoint , $ headers ), true ); |
> |
private function order ( $ side , $ symbol , $ quantity , $ price , $ type = «LIMIT» ) |
< |
$ opt = [ |
«symbol» => $ symbol , |
«side» => $ side , |
«type» => $ type , |
«price» => $ price , |
«quantity» => $ quantity , |
«timeInForce» => «GTC» , |
«recvWindow» => 60000 |
]; |
return $ this -> signedRequest ( «v3/order» , $ opt , «POST» ); |
> |
//1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,1M |
public function candlesticks ( $ symbol , $ interval = «5m» ) |
< |
return $ this -> request ( «v1/klines» , [ «symbol» => $ symbol , «interval» => $ interval ]); |
> |
private function balanceData ( $ array , $ priceData = false ) |
< |
if ( $ priceData ) $ btc_value = 0.00 ; |
$ balances = []; |
foreach ( $ array [ ‘balances’ ] as $ obj ) < |
$ asset = $ obj [ ‘asset’ ]; |
$ balances [ $ asset ] = [ «available» => $ obj [ ‘free’ ], «onOrder» => $ obj [ ‘locked’ ], «btcValue» => 0.00000000 ]; |
if ( $ priceData ) < |
if ( $ obj [ ‘free’ ] 0.00000001 ) continue ; |
if ( $ asset == ‘BTC’ ) < |
$ balances [ $ asset ][ ‘btcValue’ ] = $ obj [ ‘free’ ]; |
$ btc_value += $ obj [ ‘free’ ]; |
continue ; |
> |
$ btcValue = number_format ( $ obj [ ‘free’ ] * $ priceData [ $ asset . ‘BTC’ ], 8 , ‘.’ , » ); |
$ balances [ $ asset ][ ‘btcValue’ ] = $ btcValue ; |
$ btc_value += $ btcValue ; |
> |
> |
if ( $ priceData ) < |
uasort ( $ balances , function ( $ a , $ b ) < |
return $ a [ ‘btcValue’ ] $ b [ ‘btcValue’ ]; |
>); |
$ this -> btc_value = $ btc_value ; |
> |
return $ balances ; |
> |
private function bookPriceData ( $ array ) |
< |
$ bookprices = []; |
foreach ( $ array as $ obj ) < |
$ bookprices [ $ obj [ ‘symbol’ ]] = [ |
«bid» => $ obj [ ‘bidPrice’ ], |
«bids» => $ obj [ ‘bidQty’ ], |
«ask» => $ obj [ ‘askPrice’ ], |
«asks» => $ obj [ ‘askQty’ ] |
]; |
> |
return $ bookprices ; |
> |
private function priceData ( $ array ) |
< |
$ prices = []; |
foreach ( $ array as $ obj ) < |
$ prices [ $ obj [ ‘symbol’ ]] = $ obj [ ‘price’ ]; |
> |
return $ prices ; |
> |
> |
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Источник