更新时间:2022-03-02 03:46:32下载pdf
本文通过示例的方式为您介绍云智造平台的接入流程,旨在让您快速接入云智造平台,实现对设备生产流程的管控。
本文中我们为您提供:
在接入云智造平台之前,请先确认已经完成以下两个准备工作:
准备工作 1
:在 涂鸦 IoT 平台 上注册账号,并创建项目,创建项目后可以查看项目信息,获取授权信息,具体操作参见 云开发-快速入门。准备工作 2
:在 涂鸦PMS系统 上注册账号,具体操作请参见 申请工具账号。在进入接入流程之前,我们先对以下通用参数
进行编号并加以解释,在下文中,我们以 通用参数 1
、通用参数 2
等来替代这些参数。
编号 | 名称 | 类型 | 描述 |
---|---|---|---|
通用参数 1 |
client_id | String | 通过 准备工作 1 所获取的授权信息中的 Access ID/Client ID。 |
通用参数 2 |
secret | String | 通过 准备工作 1 所获取的授权信息中的 Access Secret/Client Secret。 |
通用参数 3 |
username | String | 通过 准备工作 2 所获取的 PMS系统 用户名。 |
通用参数 4 |
password | String | 通过 准备工作 2 所获取的 PMS系统 密码。 |
云智造平台完整的接入流程如下图所示:
一次完整的接入流程包括以下三步:
云智造平台的鉴权依赖于云开发的鉴权,在执行云智造平台相关的操作之前,需要先完成云开发的鉴权。
请求类型:Get
请求地址:/v1.0/token?grant_type=1
Header 参数:具体参数说明请参考:请求结构-请求头参数。
说明:
- 本次请求不需要 access_token;
- 参数
client_id
见通用参数 1
;- 参数
sign
的计算方式为:sign = HMAC-SHA256(client_id + t, secret).toUpperCase(),其中的 secret 为通用参数 2
,详细签名方式请参考 签名机制-令牌管理 API 签名算法。
请求参数:无
响应参数:响应参数请参考 授权管理-获取令牌。
请求示例:
curl -H "client_id:e7r9rp3fab1jtlja761b" -H "sign:14ADCB6FEDC822CC2CBA8537770453E90683B9E9C5B96C851AEB78C4F078C739" -H "sign_method:HMAC-SHA256" -H "t:1614851428586" -H "lang:en" "https://openapi.tuyacn.com/v1.0/token?grant_type=1"
{
"result": {
"access_token": "90987371be17bd35309ea325bd9b****",
"expire_time": 7200,
"refresh_token": "374e7ce2a93b590fb9566aff5119****",
"uid": "ay15224842516504****"
},
"success": true,
"t": 1616551714002
}
请求鉴权接口返回的信息中最主要的参数是访问令牌 access_token
和刷新令牌 refresh_token
,在下文中会用到。
云智造平台的鉴权需要先获取登录 Token,然后使用登录 Token 请求登录接口。
详细接口说明见:获取登录 Token。
说明:
- 参数 access_token 为 第一步 云开发鉴权 响应参数中的 access_token。
- 参数 sign 的计算方式与 第一步 云开发鉴权 略有不同:sign = HMAC-SHA256(client_id + access_token + t, secret).toUpperCase(),其中的 secret 即为
通用参数 2
,详细签名方式参考:签名机制-业务管理 API 签名算法。- 其他参数同 第一步 云开发鉴权。
说明:username为
通用参数 3
。
curl -H "Content-Type:application/json" -H "client_id:e7r9rp3fab1jtlja761b" -H "sign:6B401BB9CBB6FA3911C8E33F8EA6C0509224B6010C1E39F8AB727C2594FD5766" -H "sign_method:HMAC-SHA256" -H "t:1614914099164" -H "lang:en" -H "access_token:fa8b752dc54c54e3e53823b4f18f9c76" -X POST --data '{"username":"325"}' "https://openapi.tuyacn.com/v2.0/pms/production/login/token/get"
{
"result": {
"publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCh1mJNULvlxSb+gwQiMeYa6wpVofkueBuCq2SgPxTBcaN1wXCRe84+jWpbCaXcyVh9IOM9/oc5U/KvdemS9ihTxv/hfXS657OE5q7WM4SgSvFC1YEfvQjFCw1kg7w246FCHit/zOmWhCMB52r9FEm/fy8ijvR3f1tMmuz4LQd1bwID****",
"token": "7e5117fecc8079e7f0d08a3fa088****"
},
"success": true,
"t": 1616551772155
}
本次请求的核心响应参数为 token
和 publicKey
,在登录 PMS 系统时会用到。接口返回的 Token 有效时间仅为 10 秒,很快就会过期。
登录 PMS 系统接口说明参考:登录云智造平台。
说明:
- username 与上文 获取登录 Token 一致。
- password 采用
RSA
方式加密,Padding 类型为RSA_PKCS1_PADDING
:password = RSA(原password, publicKey)。
- 原 password 为
通用参数 4
。- publicKey 为上文 获取登录 Token 中的响应参数。
- token 参数为上文 获取登录 Token 中的响应参数。
响应参数:参考 登录云智造平台
请求示例:
curl -H "Content-Type:application/json" -H "client_id:e7r9rp3fab1jtlja761b" -H "sign:B3B970C5C3F2B90B98FED85BFDA250CFA66EC7837ADD86CB0FC747BFE0D0F60F" -H "sign_method:HMAC-SHA256" -H "t:1614916710311" -H "lang:en" -H "access_token:fa8b752dc54c54e3e53823b4f18f9c76" -X POST --data '{"username":"325","password":"eTHqOJFhY8pDClWw1zOpPqEjwdoW2nL+RI93tPCnEd3flv/KI80naWrhx2y4PSyqMLUZxr4ZEEhrL7oE7aCEi/uPHLuo7opvdgEmS2Lyk97lWwPoFXmg2t65LtBGG869b8tQu2/72aqIsuVDkK47u3UKtTEGobb2U58IxW5CTWg=","token": "38af05ec752c24f8bdbe544b1179ad10"}' "https://openapi.tuyacn.com/v2.0/pms/production/user/login"
{
"result": {
"accessToken": "affd61d250d8ed27de7a0d955a5a****",
"refreshToken": "9a473a56ea86b82a3ced1f254b24****"
},
"success": true,
"t": 1616551775549
}
通过响应参数,我们知道登录 PMS 后的响应数据包含 accessToken
和 refreshToken
,这两个参数和 第一步 云开发鉴权 中的响应参数看起来只有命名风格不同(本次请求的响应值是驼峰式命名)。在后续的业务请求中,我们将会使用本次请求响应的值代替 第一步 云开发鉴权 中的响应值进行接口请求。
这里我们以获取 SN 过站信息为例,为您展示如何进行一次业务请求,具体请求方式可以查看 云智造-API列表:
说明:
- access_token 需要使用上文 登录 PMS 系统 中的返回参数
accessToken
。- sign 的计算方式与上文 获取登录 Token 一致,但其中的 access_token 需要换成上文 登录 PMS 系统 中的返回参数
accessToken
。- 所有业务接口的请求消息头构造方式都是相同的。
curl -H "Content-Type:application/json" -H "client_id:e7r9rp3fab1jtlja761b" -H "sign:DB52E1A1599CE59FCB5E6970365566BB2E00B8D37759401BFCE255ED06E2D790" -H "sign_method:HMAC-SHA256" -H "t:1614917378432" -H "lang:en" -H "access_token:c24bb01ee09fc7884f94c761d17722cf" -X POST --data '{"sn":"YZCB04ZZR00001"}' "https://openapi.tuyacn.com/v1.0/pms/station/sn/flows/get"
{
"result": [
{
"craftLineCode": "j2***azn",
"node": "firstTest",
"nodeDesc": "烧录授权",
"orderCode": "YZC***ZZR",
"sn": "YZCB04***00001",
"status": false,
"time": 1612524780119
}
],
"success": true,
"t": 1616551882179
}
accessToken 的有效时间为两小时。过期后,可以通过刷新 Token 接口来刷新 Token,Token 一天只能刷新一次。
curl -H "client_id:e7r9rp3fab1jtlja761b" -H "sign:8480E421DD11E1ED972A6A121A4B78B4712D469859A204C366880DBF6D6D0081" -H "sign_method:HMAC-SHA256" -H "t:1614933327219" -H "lang:en" "https://openapi.tuyacn.com/v1.0/token/d415c1ecc7d742c5e1ca75634b75b73e"
{
"result": {
"access_token": "0c0e099651b1060ffafb9bfdf419****",
"expire_time": 7200,
"refresh_token": "169fca7561b8e5d393517e961df2****",
"uid": "bay15911e11580224Q8AWQx34f48f89fca11ee502a445280-000****"
},
"success": true,
"t": 1616551974215
}
我们提供了完整的 Postman 文档,您只需要依次完成下图中的前三个接口的 send 请求,就可以完成接口的鉴权操作。
注意:获取登录 Token 和 登录 PMS 系统的 send 操作间隔不要超过 10 秒。
如果你想了解接口中的参数填充是如何完成的,可以参考各个接口的 Pre-request Script 和 Tests 脚本。
7.12.0
及以上版本。为了方便接入,我们提供了 Java 版的接入 Demo,单击此处下载。
方法入口:com.tuya.pms.openapi.util.PmsOpenApiHelper。
问题现象:登录 PMS 接口返回无效 Token 怎么办?
可能原因:可能因为输入参数时间超过 10 秒导致 Token 失效。
解决办法:Token 的有效时间只有10s,因此建议使用代码或者 Postman 的方式来进行调试。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈