首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复无效的API-键、IP或操作错误的权限?

如何修复无效的API-键、IP或操作错误的权限?
EN

Stack Overflow用户
提问于 2020-01-22 07:55:48
回答 3查看 16.5K关注 0票数 2

,这是Binance加密交换api。我想得到账户信息,但我做不到。这是官方的C++, 这是github链接。这是终端上的错误。当你回答这个问题时,请放轻松。我是新手

2020年-01-22 10:32:04 085219:

202-01-22 10:32:04 085245 : url =https://api.binance.com/api/v1/userDataStream|

2020年-01-22 10:32:04 085253:

2020年-01-22 10:32:04 698466:

2020年-01-22 10:32:04 698529 :00

2020年-01-22 10:32:04 701234 :00

2020年-01-22 10:32:04 701434 :00完成。

2020年-01-22 10:32:04 701472 :00完成。

{“代码”:-2015,"msg“:”无效的API,IP或操作权限“}

2020/01/22 10:32:04:7018通知:

2020/01/22 10:32:04:7045通知:创建Vhost‘默认’端口-1,1协议,IPv6 off

2020/01/22 10:32:04:7046通知:默认创建客户端ssl上下文

2020/01/22 10:32:04:7099通知: lws_client_connect_2: 0x239f3e0: address stream.binance.com

2020/01/22 10:32:05:3128通知: lws_client_connect_2: 0x239f3e0: address stream.binance.com

,我输入了我的钥匙。

代码语言:javascript
复制
 using namespace std;


#define API_KEY         "my api key here,deleted for security"
#define SECRET_KEY      "secret key is here, deleted for security"

和主要功能

代码语言:javascript
复制
int main() {

    Json::Value result;
    long recvWindow = 10000;    

    string api_key      = API_KEY;
    string secret_key   = SECRET_KEY;
    BinaCPP::init( api_key , secret_key );


    // User Balance
    BinaCPP::get_account( recvWindow , result );
    for ( int i  = 0 ; i < result["balances"].size() ; i++ ) {
        string symbol = result["balances"][i]["asset"].asString();
        userBalance[symbol]["f"] = atof( result["balances"][i]["free"].asString().c_str() );
        userBalance[symbol]["l"] = atof( result["balances"][i]["locked"].asString().c_str() );
    }
    print_userBalance();

    // User data stream 
    BinaCPP::start_userDataStream(result );
    cout << result << endl;

    string ws_path = string("/ws/");
    ws_path.append( result["listenKey"].asString() );



    BinaCPP_websocket::init();
    BinaCPP_websocket::connect_endpoint( ws_userStream_OnData , ws_path.c_str() ); 
    BinaCPP_websocket::enter_event_loop(); 


}

这是BinaCPP.cpp的一部分

代码语言:javascript
复制
#include "binacpp.h"
#include "binacpp_logger.h"
#include "binacpp_utils.h"




string BinaCPP::api_key = "my api key here";
string BinaCPP::secret_key = "secret key here";
CURL* BinaCPP::curl = NULL;




//---------------------------------
void 
BinaCPP::init( string &api_key, string &secret_key ) 
{
    curl_global_init(CURL_GLOBAL_DEFAULT);
    BinaCPP::curl = curl_easy_init();
    BinaCPP::api_key = api_key;
    BinaCPP::secret_key = secret_key;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-23 04:40:25

我相信这就是我在python中遇到的错误。如果您使用binance.us而不是binance.com设置二进制帐户,则需要确保在灾祸文件中更改它。在python中,它与初始化客户端类时传递‘tld=“us’参数一样简单。

我看到您有“url = |https://api.binance.com/api/v1/userDataStream|”您可能需要“url = |https://api.binance.us/api/v1/userDataStream|”

另外,我注意到您的url有api/v1,只是想确保当您获取帐户信息或其他需要api_secret键的请求时,它应该滚到api/v2或api/v3上。

我不熟悉C++,但这里有一个在python中执行查找/替换的解决方案。希望这个信息对你有帮助!

您需要导航到github下载的文件所在的目录,并尝试以下操作:

检查这段代码,确保它不会替换您可能需要的任何..com代码。

代码语言:javascript
复制
import os
for root, dirs, files in os.walk(os.curdir):
    for f in files:
        file_name = os.path.join(root, f):
            try:
                with open(file_name, 'r') as fp:
                    data = fp.read().replace('.com', '.us')
                with open(file_name, 'w') as fp:
                    fp.write(data)
            except:
                print(f.ljust(20), 'failed')
票数 6
EN

Stack Overflow用户

发布于 2020-12-29 19:55:51

对我来说,我不得不登录到Binance API管理页面并更新我白色的IP地址,因为我已经改变了我的互联网提供商。总是值得一查的!

票数 2
EN

Stack Overflow用户

发布于 2022-05-29 08:37:51

看来你必须每90天重新激活交易权限。确保在API管理页面(阅读、现货/保证金交易等)上标记所有所需的框。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59855006

复制
相关文章

相似问题

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