Binance python websocket – no response

Question:

I’m trying to run an example code for binance websocket api using python-binance and following this tutorial: https://livedataframe.com/live-cryptocurrency-data-python-tutorial/

Unfortunately i can’t make it work. The websocket just doesn’t respond what results in empty terminal without anything printed out.

I’m using python 3.7.8, PyCharm IDE, Windows 10

Please help, thanks!

import time
from binance.client import Client # Import the Binance Client
from binance.websockets import BinanceSocketManager # Import the Binance Socket Manager

_API_KEY = "mykey"
_API_SECRET = "mykey"

client = Client(_API_KEY, _API_SECRET)

# Instantiate a BinanceSocketManager, passing in the client that you instantiated
bm = BinanceSocketManager(client)

# This is our callback function. For now, it just prints messages as they come.
def handle_message(msg):
    print(msg)

# Start trade socket with 'ETHBTC' and use handle_message to.. handle the message.
conn_key = bm.start_trade_socket('ETHBTC', handle_message)
# then start the socket manager
bm.start()

# let some data flow..
time.sleep(10)

# stop the socket manager
bm.stop_socket(conn_key)

In addition i can run this code, but websocket api doesn’t seem to work for me.
Regards.

from binance.client import Client


_API_KEY = "key"
_API_SECRET = "key"

client = Client(_API_KEY, _API_SECRET)
btc_price = client.get_symbol_ticker(symbol="BTCUSDT")
# print full output (dictionary)
print(btc_price)
Asked By: Kmopsuy

||

Answers:

I have removed erroneous information that I had unintentionally posted here. The rest of the post unfortunately no longer makes as much sense as before :/

Rest of the post without erroneous information:

To do that you can use unicorn-binance-websocket-api:

pip install unicorn-binance-websocket-api

Create a websocket connection to Binance:

from unicorn_binance_websocket_api.unicorn_binance_websocket_api_manager import BinanceWebSocketApiManager

binance_websocket_api_manager = BinanceWebSocketApiManager(exchange="binance.com")
binance_com_websocket_api_manager.create_stream('arr', '!userData', api_key=binance_com_api_key, api_secret=binance_com_api_secret)

And 4 more lines to print the received data records:

while True:
    oldest_stream_data_from_stream_buffer = binance_websocket_api_manager.pop_stream_data_from_stream_buffer()
    if oldest_stream_data_from_stream_buffer:
        print(oldest_stream_data_from_stream_buffer)

Just try this example: https://github.com/LUCIT-Systems-and-Development/unicorn-binance-websocket-api/blob/master/example_userdata_stream.py

Answered By: Oliver

The latest version like python-binance v1.0.15 use:

import asyncio

from binance import Client, ThreadedWebsocketManager, ThreadedDepthCacheManager

or

from binance import AsyncClient, DepthCacheManager, BinanceSocketManager

client = Client (api_key, api_secret)

Check out: https://python-binance.readthedocs.io/en/latest/#

@Daniel Droguett Quezada, it should be this instead

async_client = await AsyncClient.create(api_key, api_secret) 
Answered By: JKuek
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.