云丁Saas系统开放对接平台,即云丁openAPI,是云丁提供给合作伙伴进行云丁智能设备管理系统开发的一套接口,包括智能网关,智能门锁,智能电表等等一系列智能设备的管理接口。
本文档旨在说明合作伙伴怎样通过云丁openAPI去开发自己的云丁智能设备管理系统,因此本文档从合作伙伴开发者的角度,通过openAPI实现了一套包含两个房间,并且拥有智能网关,智能门锁和智能电表的智能设备管理系统。
# 1 商户开启对接云丁系统模式
云丁Saas管理系统对接分为商户对接和平台对接。本文档使用商户对接作为示例。
## 1.1商户账号对接申请
商户在云丁系统注册了自己的商户账号后有对接需求,可以联系云丁商务进行商户账号对接申请,云丁商务将会给予协助。申请的信息主要包括:商户账号,商户邮箱,商户系统的回调URL(非必需)等。
以下是商户申请对接信息表的示例:
![](https://img.kancloud.cn/8b/ee/8bee115c68570f97ae76635e082a3253_1818x758.png)
申请成功后,商户邮箱将会收到对接必需的client_id和client_secret。接着便能进行下一步操作了。
## 1.2 获取access_token
调用云丁openAPI需要上传access_token字段,该字段标明商户的身份是否合法,每个商户账号对应一个access_token。
根据上一步获取的client_id和client_secret可以通过v2/access_token接口获取商户的access_token。
获取access_token的Python代码示例:
```
import requests
def get_access_token(client_id, client_secret):
url = 'https://saas-openapi.dding.net/v2/access_token'
headers = {
'Content-type' : 'Application/json',
'User-Agent' : 'PostmanRuntime/7.13.0',
}
payload = {
'client_id' : client_id,
'client_secret' : client_secret
}
response = requests.request('POST', url, headers=headers, json=payload)
return response.json()
if __name__ == '__main__':
client_id = '74e52b657d89f3891a8cb4d1'
client_secret = '96e9868469fe6fa0bc1daf521529f04f'
result = get_access_token(client_id, client_secret)
print(result)
```
返回的结果如下:
```
{
"ReqID": "1Sdjw6qQQwS",
"ErrNo": 0,
"ErrMsg": "",
"access_token": "2389cd881d18c7efcfed147bc44cb1fc604ffcced22ce579e7cb1ba8eb99c6a74737124aecc1beb1182eb872e73b78f74c59ed0fc4986e5f03fd6bc7fa14e331",
"expires_time": 1569392952
}
```
根据返回的json数据可以拿到access_token, expire_time是access_token的过期时间戳,单位是s。
需要注意的是:实际开发中,需要使用专门的服务器定期更新access_token,防止其失效造成业务受到影响。
## 1.3 小结与展望
拿到access_token后,便能进行云丁智能设备管理系统的开发了。接下来章节将通过具体的例子实现一套简单的智能设备管理系统。