
零基础OKEX-API入门及实践01
概述:
了解OKEX的API功能
安装VScode运行Python
通过OKEX提供的SDK获取个人账户信息及开单
用getpass库隐藏密码信息
一、什么是API
API的全称为Application Programming Interface,即应用程序编程接口。简单来说就是开发者可以用这个接口获得网站提供的数据
okex提供的API有两种REST API和Websocket API。REST API请求一次,获得一次账户信息数据,而websocket API订阅以后,服务器根据你设定的规则可以主动推送账户信息数据给你,不必频繁的请求。REST API相对简单,适合入门,下面所讲都是基于REST。
先举个例子:OKEX的API开发文档(地址:https://www.okex.com/docs/zh/)
在开发文档“API概述--请求--介绍”里有如下内容:
REST API终端URL https://www.okex.com/
在“API概述--验证--获取服务器时间”里内容如下:
获取API服务器的时间。此接口为公共接口,不需要身份验证。
HTTP请求
GET /api/general/v3/time
限速规则:20次/2s
把这两个地址合并起来,输入浏览器中,即
https://www.okex.me/api/general/v3/time 。注意com被换成了me,.me是面向国内的(现在变成了
okxjy.com),可以得到如图1的页面,刷新一次页面,页面上的数据就会变动一次。刷新就相当于请求,也就是GET,那结果返回的就是服务器的时间数据。
说白了,API就是把花里胡哨的网页编码拿掉了,只保留了有用的数据供开发者程序调用。REST API的介绍到这里其实已经够了,下一步就是用Python来替换浏览器获得这个数据。
二、通过Anaconda安装VSCode运行Python程序
什么是Anaconda? 简单来说就是管理Python的运行环境的,Anaconda完全入门指南,这个文章说的很清楚了,不在赘述。Anaconda的下载地址为:Anaconda Python/R Distribution - Anaconda
安装好Anaconda后,打开Anaconda Navigator,安装VS code
安装好后打开VS code,按“ctrl+shift+p”调出命令面板,输入Python:select interpreter选择Python的解释器。
配置完解释器,软件左下角会出现解释器的名称,如下图:
如果需要汉化可以如下图操作,安装语言包:
在VScode 上新建文件,保存为.py的Python文件,输入print('hello world'),如下图:
右击选择‘在终端中运行Python文件’,如下图
在终端会输出hello world,如下图:
本人用不同电脑安装了几次(windows),有遇到问题的也有很顺利的。如果运行过程中报错,可以自行搜索解决办法,上述讲Anaconda的文章中也有配置运行环境的步骤。
三、在Python上获取OKEX的服务器时间
在VS code上运行以下代码:
import requests
url = 'https://www.okex.me/api/general/v3/time'
response = requests.get(url)
print(response.json())
会得到如下:
好了,到此我们完成了关键的一步,运行Python代码通过API访问了OKEX的服务器,得到了服务器的时间数据。随便说一下,Requests是一个Python HTTP库,可以直接调用访问URL非常方便。关于requests的更多的说明,可以参考:
Requests: 让 HTTP 服务人类
2.python-requests.org//zh_CN/latest/index.html
四、下载OKEX的软件开发工具包(SDK)
为了让开发者更便利,OKEX把API的很多接口封装成了模块和函数并进行了打包,这样没有经验的开发者可以直接调用打包好了的函数实现一些基本的功能,而不必按照API说明文档上进行很繁琐的验证。这些包叫做SDK--Software Development Kit,即软件开发工具包,OKEX的API开发文档的入门指引中有提到。下载地址:
okcoin-okex/open-api-v3-sdk
github.com/okex/V3-Open-API-SDK
下载后解压程序包,在VScode中选择,文件--打开文件夹,选择解压后的程序包,选择okex-python-sdk-api 文件夹。在VScode 左侧的资源管理器中选择example.py文件。
很明显api_key, seceret_key, passphrase是你需要填的。这个文件里还有很多被注释掉的函数,都是可以直接调用的,如下图。每个函数都是根据网站的API规则进行编写的,利用SDK会大幅降低我们使用API的难度。
这些可以直接调用的函数的简要说明,可以在README.md文件查看,也可以在下面的网址上查看。
https://github.com/okex/V3-Open-API-SDK
github.com/okex/V3-Open-API-SDK
五、申请API获取自己的账户信息
申请API获取自己账户的apiKey,如下图:
点击‘申请V3 API’,按照要求填写和选择相关信息,权限有只读,提币,交易。为了让程序自动下单,本文勾选了交易。设置好密码后,点击查看,输入刚才设置的Passphrase和账户的谷歌验证码,复制API信息。
在example.py中,分别填入api_key, seceret_key, passphrase。会有人问这些信息和密码都这么重要会不会被泄漏,不用过于担心,后面会教你用python的getpass库把这些敏感信息隐藏起来。
下面以BTC交割合约为例用Python获取交割合约的账户信息。函数和调用的方式,example.py中已经给了,我们只需要稍微改一下就好。代码如下:
如果运行出错,那很大的可能是你忘了把http://www.okex.com改成http://www.okex.me,可在consts.py中修改,如下图:
运行后输出,可以发现交割合约账户的可用BTC为0.018个。
下面开个多单试一下,同样用里面已经封装好的函数,代码如下:
这里说一下各个参数的意思,可以在API的说明文档中找到。
client_oid: 您设置的订单ID
type: 1:开多2:开空3:平多4:平空
price:每张合约的价格
size: 买入或卖出合约的数量(以张计数)
match_price:是否以对手价下单(0:不是 1:是)
leverage:杠杆倍数,1-100的整数
运行一下,result打印出来的值如下,'result'为'Ture'说明已经下单成功:
看一下OKEX的界面发现已经开了一个多单。
把这个仓位平掉,只要把type改成 3,price改一下就好了。
六、用getpass隐藏自己的phrase key
api_key, seceret_key, passphrase是极其重要和敏感的信息,如果被盗取,那完全可以操控你的账户,所以要在程序中隐藏一下!那就要用到getpass库。以passphrase为例,增加的代码如下图所示:
运行的时候只需输入passphrase就可以了,输入的字符是看不到的!
“交易所 官方网站”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与我们联系删除或处理,客服邮箱:bitokx@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。