前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Bigone API 升级到v2,害死程序员

Bigone API 升级到v2,害死程序员

作者头像
申龙斌
发布2018-07-27 11:46:40
7860
发布2018-07-27 11:46:40
举报

最近调动到北京工作,以前开发的三角套利程序竟然不能正常运行了,真是币圈一天,人间一年。最近稍微有一点点空闲时间,重拾搬砖程序,却发现Bigone的API已经发生了重大变化,非常非常大的变化,不只是外界看到的ONE交易挖矿(API的开发者文档地址: https://open.big.one/,请自备V**)。

v2版本的API与v1发生了非常大的变化,原来的API接口程序几乎要重写!坑死程序员!

首先,API的入口变为 https://big.one/api/v2/

当然换成https://b1.run/api/v2/ 也是可以的。

另外,API认证方式也发生了变化,以前Header只需要传递一个bigone指定的后台参数即可通过,现在要麻烦了一些。例如,以前的Header:

Authorization: Bearer eyJhbG*****************V4Vpro

现在这个令牌的生成更安全了,需要一个时间戳,而且需要一个称为JWT token的类库,网址是: https://jwt.io,这个网站里有各种编程语言的支持,请自行研究,我只把C#的例子写出来。

先添加一个nuget的jose-jwt的引用,然后:

using Jose;

Header中需要type, sub, nonce三个参数,sub是API key,请从bigone的后台获取,nonce是服务器的当前UNIX时间戳,请跑通下面的例子,密钥用testsecret。

public static bool TestJWT_Token() { var payload = new Dictionary<string, object>() { { "type","OpenAPI"}, { "sub", "cee88ab0bc69435784b7db0545e85647"}, { "nonce", 1527665262168391000} }; var secretKey = System.Text.Encoding.Default.GetBytes("testsecret"); string token = Jose.JWT.Encode(payload, secretKey, JwsAlgorithm.HS256); if (!token.Contains("joiT3BlbkFQSSIsInN1YiI6ImNlZTg")) return false; if (!token.Contains("NTc4NGI3ZGIwNTQ1ZTg1")) return false; if (!token.Contains("UyNjIxNjgz")) return false; if (!token.EndsWith("To1WxbWV4Vpro")) return false; return true; }

如果客户端没有精确的UNIX时间,可以使用Ping命令,访问URL为:

https://big.one/api/v2/ping

如果一切正常,则可能得到类似下面的内容:

{ "timestamp": 1527665262168391000 }

然后,需要把key换成自己帐号的API Key

var payload = new Dictionary<string, object>() { { "type","OpenAPI"}, { "sub", 自己的API_Key }, { "nonce", 刚才用Ping()得到的时间戳 } }; // 下面的secret是bigone账户中得到的API Secret。 var secretKey = System.Text.Encoding.Default.GetBytes(secret); apiToken = Jose.JWT.Encode(payload, secretKey, JwsAlgorithm.HS256);

上面得到的apiToken就是以前v1版本的令牌,比以前更加安全了。

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiT3BlbkFQSSIsInN1YiI6ImNlZTg4YWIwYmM2OTQzNTc4NGI3ZGIwNTQ1ZTg1NjQ3Iiwibm9uY2UiOjE1Mjc2NjUyNjIxNjgzOTEwMDB9.YNpae4v_-OU7h2sknRPa3XPhDcC3p-To1WxbWV4Vpro

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 申龙斌的程序人生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档