tencent cloud

物联网通信

动态与公告
产品动态
产品简介
产品概述
产品功能
产品优势
应用场景
产品限制
基本概念
快速入门
快速开始
场景一:设备互通
场景二:设备状态上报与状态设置
MQTT.fx接入指南
控制台使用手册
产品管理
规则引擎
子账号访问IoT
固件升级
资源管理
证书管理
开发者手册
功能组件
签名方法
设备身份认证
设备接入协议
网关子设备
消息通信
设备影子
设备固件升级
设备远程配置
资源管理
设备日志上报
NTP服务
设备端接入手册
设备接入概述
基于C SDK接入
基于 Android SDK 接入
基于 Java SDK 接入
基于 Python SDK 接入
API 文档
History
Introduction
API Category
Making API Requests
Device Shadow APIs
Device APIs
CA Certificate APIs
Product APIs
Data Types
Error Codes
常见问题
一般性问题
设备接入和上报问题
规则引擎问题
控制台相关问题
IoT Hub 政策
隐私协议
数据处理和安全协议
词汇表

数据转发到第三方服务

PDF
聚焦模式
字号
最后更新时间: 2024-12-27 10:29:42

概述

将通过规则提取出来的消息字段转发给第三方服务时,您可自定义如何处理这些数据。这种方式是提供给用户灵活性最高的一种消息处理方式。
注意:
第三方服务必须以 HTTP 或 HTTPS 的方式提供服务。配置转发第三方服务,需要提供支持 HTTP 或 HTTPS 的网站 URL 和端口。规则引擎转发成功后,第三方服务将收到来至 42.193.134.62 的数据包。
下图展示了将数据转发给第三方服务的整个过程:


转发的数据内容和格式,请参见 数据处理 文档。

填写服务器配置

1. 登录 物联网通信控制台, 选择左侧菜单规则引擎
2. 单击所要配置的规则。进入规则详情页面,单击添加行为操作
3. 在弹出的“添加规则”窗口,填写相关信息。单击保存即可。
选择行为类型为“forward”。
填写您的 HTTP 或 HTTPS 服务地址。物联网通信平台会将设备上报的数据转发至 HTTP 或 HTTPS 服务地址。
请勾选 “增加鉴权 Token”,且填写您的服务对应的 Token;您可以任意填写 Token,用作生成签名(该 Token 会和接口 URL 中包含的 Token 进行比对,从而验证安全性)。




验证消息来自物联网通信平台

注意:
为了您后台稳定使用,请选择增加鉴权 Token。

请求标识

用户如果在转发到第三方服务(Forward)即 HTTP 转发,已选择“增加鉴权 Token”,物联网通信平台将在 HTTP 或 HTTPS 请求中头部增加如下字段:
参数
描述
Signature
Signature 结合了“添加规则”中填写的 Token 参数和请求中的 Timestamp 参数、Nonce 参数
Timestamp
时间戳
Nonce
随机数
1. 将 Token、Timestamp、Nonce 三个参数进行字典序排序。
2. 将三个参数字符串拼接成一个字符串进行 sha1 加密。
3. 开发者获得加密后的字符串可与 Signature 对比,标识该请求来源于物联网通信平台。
检验 Signature 的 PHP 示例代码如下:
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];

$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}

例如某次请求,相关参数如下,用户设置 Token 为 aaa。
Nonce: IkOaKMDalrAzUTxC
Signature: c259ed29ec13ba7c649fe0893007401a36e70453
Timestamp: 1604458421

排序后的字符串是 1604458421IkOaKMDalrAzUTxCaaa,最终计算 sha1 结果为 c259ed29ec13ba7c649fe0893007401a36e70453
服务地址校验
1. 当开启规则引擎时,物联网通信平台将发送一次 GET 请求到填写的服务器地址 URL 上,GET 请求头部增加如下字段:
参数
描述
Signature
Signature 结合了“添加规则”中填写的 Token 参数和请求中的 Timestamp 参数、Nonce 参数
Timestamp
时间戳
Nonce
随机数
Echostr
随机字符串
物联网通信平台向第三方服务发送报文示例:
GET / HTTP/1.1
Host: **.**.**.**:4443
User-Agent: Go-http-client/1.1
Content-Type: application/json
Echostr: UPWIAFASvDUFcTEE
Nonce: testrance
Signature: abb6c316a8134596d825c5a1295bfa6f7657664d
Timestamp: 1623149590
Accept-Encoding: gzip

2. 第三方服务若确认此次 GET 请求来自物联网通信平台,请在 body 中原样返回 Echostr 参数内容。 第三方服务回复物联网通信平台报文示例:
HTTP/1.1 200 OK
Date: Tue, 08 Jun 2021 10:53:10 GMT
Content-Length: 16
Content-Type: text/plain; charset=utf-8

UPWIAFASvDUFcTEE

3. 物联网通信平台校验返回的 Echostr 参数内容,确认服务器地址 URL 是否有效。

重发机制

重发机制用于在消息转发过程中发生失败的情况下,进行再次重发以达到接受消息的目的,具体说明如下:
若消息转发失败,系统则会进行转发重试,重试按照1s、3s、10s的时间间隔依次进行,若三次重试均失败,则将消息丢弃掉。
若用户配置了“转发错误行为操作”,在三次重试失败后,将按“转发错误行为操作”的配置,再进行一次消息转发,如果仍失败,则将消息丢弃掉。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈