1. 概述
1.1 应用场景
公司内部使用易流云进行车辆管理。希望从接口获取用户车辆最新位置信息。
1.2 接口说明
接口描述:获取用户车辆的最新位置信息
使用场景:其他系统需要免登易流云平台时,可使用此接口实现。免登的凭证有时效性,时效为获取凭证时传入的timestamp之后的10分钟内有效。所以最好在点击跳转易流云链接时实时获取凭证信息使用,以保证可以正常跳转。
展开查看接口参数说明: | ||||||||||||||||||||||||||||||||||||
接口示例: https://xxxxx/api/vehicleMonitor/getVehicleInfo?method=GetVehcileInfo×tamp=2023-05-24 14:34:27&format=json&vehicleNo=1234&sessionId=&isOffsetLonLat=0&appkey=0E3426F5-9A22-2ADD-4AAD-001F26AEDE7A&sign=8A5E6B0189F58F3F6433D7D21186AD8E 接口参数:
|
其中签名 sign 生成方法为:根据传入参数名称(签名sign除外)将所有请求参数按照首字母先后顺序排序,md5(密钥+除密钥外排好序的参数串+密钥)后转换为大写字母。
调用示例:
分类 | 示例值 |
---|---|
外部系统获得的公钥和密钥 | appkey=abe10b89-8385-413a-b28f-894f7957f78d |
appsecret=184CE4DF-C5D2-4F55-8539-ED45D4E91FBB | |
获取车辆最新位置信息接口的参数示例 | method=GetVehcileInfo appkey=abe19b89-8185-483a-b28f-894f7957f78d timestamp=2014-11-08 11:47:42 format=json vehicle=晋B203819 sessionid="" |
生成签名计算公式示例 | md5('184CE4DF-C5D2-4F55-8539-ED45D4E91FBBappkeyabe19b89-8185-483a-b28f-894f7957f78dformatjsonmethodGetVehcileInfosessionidtimestamp2014-11-08 11:47:42vehicle晋B203819184CE4DF-C5D2-4F55-8539-ED45D4E91FBB') |
注: 加密结果需要转换为大写字母格式后即为所需签名。
1.3 实现思路
2. 操作步骤
2.1 获取易流云公钥和密钥
在系统中获取易流云公钥和密钥。
API接口访问必须经过易流公司授权后才可以使用(在易流云平台右上角接口中心中申请),授权成功后会得到授权码
公钥和密钥分别是:appkey、appsecret,在每次访问API接口时必须指定公钥。否则访问就会被拒绝。
注:外部系统调用易流API接口时,每次都要传参数timestamp,易流API服务端允许客户端请求时间误差为20分钟。
2.2 使用MD5加密获取签名sign
新增数据转换节点,进入编辑界面后,新增 SparkSQL 算子,输入语句生成 time 和签名 sign ,如下图所示:
将当前时间设置为 time1,并使用 1.2 节的接口信息参数使用 MD5 加密获取签名 sign。
注:由于参数串中需要使用 timestamp 为当前时间,因此 MD5 函数中还使用了 concat 函数进行拼接。
SELECT NOW() as time1,
UPPER(MD5(CONCAT('bba3e99f-080b-4de5-8d6b-637b79273b9aappkey352c1068-96f1-45e9-8bd7-70b5749056e2formatjsonmethodGetVehcileInfotimestamp',left(NOW(),19),'vehicleNo-1bba3e99f-080b-4de5-8d6b-637b73273b9a'))) as sign
「数据预览」即可看到设置的 time1 和签名 sign,如下图所示:
将其分别设置为参数 time1 和 sign,便于后续 API 取数时引入,如下图所示:
2.3 将参数带入接口中取数
新建数据转换节点,进入编辑界面后,新增 API 输入算子,并输入 API 地址,选择请求方式,然后设置请求参数,如下图所示:
其中 timestamp 参数使用 2.2 节设置的当前时间参数,sign 参数使用 2.2 节生成的签名参数。
然后点击「数据预览」即可看到取出的数据,如下图所示:
注:若需要预览数据,则在2.1 节设置参数时需要输入默认值进行调试。
使用 JSON 解析,将返回的 JSON 格式数据解析为二维表,如下图所示:
最后即可使用 DB表输出将取出并解析的数据写入指定数据库,如下图所示: