tencent cloud

文档反馈

数据转发到第三方服务

最后更新时间: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的时间间隔依次进行,若三次重试均失败,则将消息丢弃掉。
    若用户配置了“转发错误行为操作”,在三次重试失败后,将按“转发错误行为操作”的配置,再进行一次消息转发,如果仍失败,则将消息丢弃掉。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持