首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Binance API密钥

Binance API密钥
EN

Stack Overflow用户
提问于 2017-12-26 23:10:55
回答 8查看 38.2K关注 0票数 10

我已经在Binance上设置了一个只读API键来访问帐户信息,比如货币余额,但是我看不到JSON数据。我在URL中放置的字符串查询返回以下错误:

{“代码”:-2014,"msg":"API-key格式无效。“}

我使用的URL是:https://api.binance.com/api/v3/account?X-MBX-APIKEY=**key**&signature=**s-key**

Binance的文档可以在这里找到:https://www.binance.com/restapipub.html。我做错什么了?

EN

回答 8

Stack Overflow用户

发布于 2018-05-17 13:44:39

Binance的websocket使用起来有点棘手。此外,也没有办法使用秘密密钥。

常用

  1. 将HTTP请求以机密API密钥作为X-MBX-APIKEY头发送到https://api.binance.com/api/v1/userDataStream
  2. 您将获得用于websocket连接的侦听键。有一个小时的时间。{"listenKey":“您的监听键在这里”}
  3. 连接到Binance的websocket时使用它

wss://stream.binance.com:9443/ws/{your listen key here}

Python示例

代码语言:javascript
复制
import ssl
from websocket import create_connection

import requests

KEY = 'your-secret-key'
url = 'https://api.binance.com/api/v1/userDataStream'
listen_key = requests.post(url, headers={'X-MBX-APIKEY': KEY})['listenKey']
connection = create_connection('wss://stream.binance.com:9443/ws/{}'.format(KEY), 
                               sslopt={'cert_reqs': ssl.CERT_NONE})
票数 3
EN

Stack Overflow用户

发布于 2018-06-29 22:11:28

你把它放在头上。下面是从jaggedsoft二进制PHP库借用的PHP工作示例,它是一个签名请求,将返回帐户状态。

代码语言:javascript
复制
$api_key = "cool_key";
$secret = "awesome_secret";

$opt = [
  "http" => [
    "method" => "GET",
    "header" => "User-Agent: Mozilla/4.0 (compatible; PHP Binance API)\r\nX-MBX-APIKEY: {$api_key}\r\n"
  ]
];
$context = stream_context_create($opt);
$params['timestamp'] = number_format(microtime(true)*1000,0,'.','');
$query = http_build_query($params, '', '&');
$signature = hash_hmac('sha256', $query, $secret);
$endpoint = "https://api.binance.com/wapi/v3/accountStatus.html?{$query}&signature={$signature}";

$res = json_decode(file_get_contents($endpoint, false, $context), true);
票数 2
EN

Stack Overflow用户

发布于 2021-06-14 13:50:52

代码语言:javascript
复制
def get_listen_key_by_REST(binance_api_key):
    url = 'https://api.binance.com/api/v1/userDataStream'
    response = requests.post(url, headers={'X-MBX-APIKEY': binance_api_key})  # ['listenKey']
    json = response.json()
    return json['listenKey']


print(get_listen_key_by_REST(binance_api_key))


def get_all_orders(symbol, binance_api_key, binance_secret_key):
    """Get all account orders; active, canceled, or filled.
    Args:   symbol: Symbol name, e.g. `BTCUSDT`.
    Returns:
    """

    from datetime import datetime, timezone, timedelta
    now = datetime.now(timezone.utc)
    epoch = datetime(1970, 1, 1, tzinfo=timezone.utc)  # use POSIX epoch
    posix_timestamp_micros = (now - epoch) // timedelta(microseconds=1)
    posix_timestamp_millis = posix_timestamp_micros // 1000  # or `/ 1e3` for float

    import hmac, hashlib
    queryString = "symbol=" + symbol + "&timestamp=" + str(
        posix_timestamp_millis)
    signature = hmac.new(binance_secret_key.encode(), queryString.encode(), hashlib.sha256).hexdigest()
    url = "https://api.binance.com/api/v3/allOrders"
    url = url + f"?{queryString}&signature={signature}"
    response = requests.get(url, headers={'X-MBX-APIKEY': binance_api_key})
    return response.json()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47984654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档