历史版本2 :参数使用MD5加密后从API取数 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

公司内部使用易流云进行车辆管理。希望从接口获取用户车辆最新位置信息。

1.2 接口说明

接口描述:获取用户车辆的最新位置信息

使用场景:其他系统需要免登易流云平台时,可使用此接口实现。免登的凭证有时效性,时效为获取凭证时传入的timestamp之后的10分钟内有效。所以最好在点击跳转易流云链接时实时获取凭证信息使用,以保证可以正常跳转。

点击展开更多

接口示例:

https://xxxxx/api/vehicleMonitor/getVehicleInfo?method=GetVehcileInfo&timestamp=2023-05-24 14:34:27&format=json&vehicleNo=1234&sessionId=&isOffsetLonLat=0&appkey=0E3426F5-9A22-2ADD-4AAD-001F56AEDE7A&sign=8A5E6BC189F58F3F6433D7D21186AD8E

接口参数:

参数是否必填示例说明
methodGetVehcileInfo具体API接口名称
timestamp2023-05-24 14:34:27时间戳,格式为yyyy-mm-dd HH:mm:ss,例如:2013-05-06 13:52:03(建议传入当前时间)
formatjson返回数据格式 xml或json不传默认为json格式
vehicleNo1234需要查询的车牌,支持多车查询,车牌之间用英文逗号分割,-1表示全部车辆
sessionId
增量更新ID,首次查询时sessionid=,传空表示获取全部车辆数据;再次查询时,将上次查询返回结果中Code为1时的message的值赋给sessionid
isOffsetLonLat0

是否返回其他经纬度(不需要则传0以提高接口效率)

2.百度(BD-09)

1. 偏移经纬度(GCJ-02)

0.不需要
appkey0E3426F5-9A22-2ADD-4AAD-001F56AEDE7A易流云平台分配的公钥(需在易流云平台上申请)
sign

8A5E6BC189F58F3F6433D7D21186AD8E

api接口输入参数的签名摘要(每个接口的签名都是更跟接口各自的参数有关)


其中签名 sign 生成方法为:根据传入参数名称(签名sign除外)将所有请求参数按照首字母先后顺序排序,md5(密钥+除密钥外排好序的参数串+密钥)后转换为大写字母。

调用示例:

例如外部系统获得的公钥和密钥分别为:

  • appkey=abe10b89-8185-483a-b28f-894f7957f78d

  • appsecret=184CD4DF-C5D2-4F55-8539-ED45D4E91FBB

获取车辆最新位置信息接口的参数如下:

  • method=GetVehcileInfo

  • appkey=abe10b89-8185-483a-b28f-894f7957f78d

  • timestamp=2014-11-08 11:47:42

  • format=json

  • vehicle=陕A0000

  • sessionid=""

生成签名计算公式如下:md5('184CD4DF-C5D2-4F55-8539-ED45D4E91FBBappkeyabe10b89-8185-483a-b28f-894f7957f78dformatjsonmethodGetVehcileInfosessionidtimestamp2014-11-08 11:47:42vehicle陕A0000184CD4DF-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表输出将取出并解析的数据写入指定数据库,如下图所示: