登录
原创

聚合云推 - 文档中心

发布于 2021-11-22 阅读 300
  • 聚合云推
原创

消息接收方式

概述

聚合云推提供了多种消息推送(提醒)的方式,用户简单的配置后,可以实现手机短信、微信公众号、企业微信群机器人、钉钉群机器人、邮箱、webhook等全方位消息提醒。

不同的提醒方式效果如下:

微信公众号

短信通知

邮件通知

钉钉群机器人

企业微信机器人

Webhook

微信公众号

  • 服务说明

    用户订阅「聚合云推」服务,通过「聚合云推」微信公众号接收消息。

    image.png

  • 配置方法

    关注「聚合云推」微信公众号后,即可在服务配置中选择微信公众号通知;

    未关注,则不能选择该推送方式。

    PS:如果你当前正在使用「聚合云推」微信公众号推送消息,取消关注「聚合云推」微信公众号,则无法接收消息。

短信通知

  • 服务说明

    用户订阅「聚合云推」服务,通过手机短信接收消息。

    image.png

  • 配置方法
    1. 进入【聚合云推】-【个人中心】,点击 “短信通知”。
    2. 填写手机号码,点击“下一步”,获取短信验证码。
    3. 填写短信验证码,点击确定后配置成功。
    4. 创建订阅服务,提醒方式中,选择“短信通知”,即可使用。

    PS:同时,可以在“创建服务” - “提醒方式” 中去配置短信推送方式。目前,「事件提醒」和「消息推送服务」,暂不支持短信推送的方式。

邮件通知

  • 服务说明

    用户订阅「聚合云推」服务,通过邮件(Email)接收消息。

    image.png

  • 配置方法
    1. 进入【聚合云推】-【个人中心】,点击 “邮件通知”。
    2. 填写邮箱地址,点击“下一步”,获取邮件验证码。
    3. 填写邮件验证码,点击确定后配置成功。
    4. 创建订阅服务,提醒方式中,选择“邮件通知”,即可使用。

    PS:同时,可以在 “创建服务” - “提醒方式” 中去配置邮件推送方式。

钉钉群机器人

  • 服务说明

    用户订阅「聚合云推」服务,通过钉钉群机器人接收消息。
    image.png

  • 配置方法
    1. 选择需要添加机器人的群聊,点击 “群设置” - “智能群助手” - ”添加机器人“,进入【机器人管理】页面。

    2. 点击“添加机器人”,进入【机器人管理】页面。
      image.png

    3. 在【机器人管理】页面选择 “自定义机器人”,然后点击 ”添加”。
      image.png

    4. 输入机器人名字,在 "安全设置“ 中选择 “自定义关键词” 或 "IP地址(段)”后,点击完成。
      image.png
      image.png

      用于 “IP地址(段)”方式,「聚合云推」提供了3个IP地址,如下:
      172.16.4.184
      172.16.5.9
      172.16.6.203

      ** PS:目前,暂不支持 “加签” 方式推送消息。**

    5. 复制出机器人的Webhook地址,可用于向这个群发送消息,格式如下:
      https://oapi.dingtalk.com/robot/send?access_token=XXXXXX
      image20211119144643650.png

    6. 进入【聚合云推】-【个人中心】,点击 “钉钉群机器人”。
      image.png

    7. 填写从钉钉客户端获取的 “Webhook” 地址,点击“下一步”后配置成功。

    8. 创建订阅服务,提醒方式中,选择 “钉钉群机器人”,即可使用。

    PS:同时,可以在“创建服务” - “提醒方式” 中去配置钉钉群机器人的推送方式。

企业微信机器人

  • 服务说明

    用户订阅「聚合云推」服务,通过钉钉群机器人接收消息。
    image.png

  • 配置方法
    1. 选择需要添加机器人的群聊,右击 “添加机器人”。
      image.png

    2. 点击 “添加机器人”(注意:需要企业管理员分配权限)
      image.png

    3. 添加后,复制出机器人的Webhook地址,可用于向这个群发送消息,格式如下:
      https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXX

    4. 进入【聚合云推】-【个人中心】,点击 “企业微信机器人”

    5. 填写Webhook地址,点击 “下一步” 后,配置成功。
      image.png

    6. 创建订阅服务,提醒方式中,选择 “Webhook通知”,即可使用。

    PS:同时,可以在“创建服务” - “提醒方式” 中去配置企业微信机器人的送方式。

Webhook

  • 服务说明

    用户订阅「聚合云推」服务,通过Webhook接收消息。

  • 配置方法
    1. 进入【聚合云推】-【个人中心】,点击 “Webhook通知”。
    2. 填写Webhook地址,点击 “下一步” 后,配置成功。
    3. 创建订阅服务,提醒方式中,选择 “Webhook通知”,即可使用。

    PS:同时,可以在“创建服务” - “提醒方式” 中去配置Webhook的送方式。

  • 文档说明

    「聚合云推」会在消息推送事件被触发时,根据用户配置的webhook回调地址,向此接口地址采用POST的方式请求,以达到数据推送到目的,从而完成消息的推送服务。 当用户选择不同的服务时,我们POST的body内容也会因此不同,从而会出现不同的数据格式,我们在此对于推送数据与数据格式说明:

    # 公共字段

    字段名 类型 说明
    data object 返回数据的实体对象
    event_title string 消息标题
    push_time string 消息推送时间
    msg_id int 消息id
    event_type int 消息类型
  • 天气预报

    # 字段说明

    字段名 类型 说明
    data.result object 天气数据实体对象
    data.result.realtime object 实时天气对象
    data.result.realtime.temperature string 温度
    data.result.realtime.humidity string 湿度
    data.result.realtime.info string 天气描述
    data.result.realtime.wid string 天气标识
    data.result.realtime.direct string 风向
    data.result.realtime.power string 风力
    data.result.realtime.aqi string 空气质量指数
    data.result.future array 未来天气数组
    data.result.future.date string 日期
    data.result.future.temperature string 温度
    data.result.future.weather string 天气描述
    data.result.future.wid object 天气标识
    data.result.future.wid.day string 白天天气标识
    data.result.future.wid.night string 夜里天气标识

    # json示例

    {
    	"data": {
    		"result": {
    			"city": "无锡",
    			"realtime": {
    				"temperature": "19",
    				"humidity": "50",
    				"info": "晴",
    				"wid": "00",
    				"direct": "东风",
    				"power": "2级",
    				"aqi": "43"
    			},
    			"future": [{
    				"date": "2021-11-19",
    				"temperature": "10~21℃",
    				"weather": "多云",
    				"wid": {
    					"day": "01",
    					"night": "01"
    				},
    				"direct": "东风"
    			}, {
    				"date": "2021-11-20",
    				"temperature": "13~20℃",
    				"weather": "多云转小雨",
    				"wid": {
    					"day": "01",
    					"night": "07"
    				},
    				"direct": "东南风"
    			}, {
    				"date": "2021-11-21",
    				"temperature": "6~16℃",
    				"weather": "中雨转小雨",
    				"wid": {
    					"day": "08",
    					"night": "07"
    				},
    				"direct": "西北风"
    			}, {
    				"date": "2021-11-22",
    				"temperature": "1~9℃",
    				"weather": "多云",
    				"wid": {
    					"day": "01",
    					"night": "01"
    				},
    				"direct": "西北风"
    			}, {
    				"date": "2021-11-23",
    				"temperature": "0~8℃",
    				"weather": "多云",
    				"wid": {
    					"day": "01",
    					"night": "01"
    				},
    				"direct": "西北风转西风"
    			}]
    		},
    		"district": "宜兴"
    	},
    	"event_title": "天气预报",
    	"event_type": 2,
    	"msg_id": 88800,
    	"push_time": "2021-11-19 16:09"
    }
    
  • 事件提醒

    # 字段说明

    字段名 类型 说明
    data.event_desc string 事件提醒的备注
    data.event_title string 事件提醒的标题

    # Json示例

    {
    	"data": {
    		"event_desc": "到了打疫苗的时间咯",
    		"event_title": "打疫苗"
    	},
    	"event_title": "事件提醒",
    	"event_type": 1,
    	"msg_id": 196,
    	"push_time": "2021-11-19 17:03"
    }
    
  • 自然灾害预警

    # 字段说明

    字段名 类型 说明
    data.id string 预警消息ID
    data.title string 预警消息标题
    data.level string 预警等级, 橙色/红色/蓝色/黄色/未知
    data.type string 预警类型
    data.time string 预警发布时间
    data.province string 省份, 可能为空
    data.city string 城市, 可能为空
    data.district string 区域, 可能为空
    data.content string 预警详细内容

    # Json示例

    {
    	"data": {
    		"id": "94826",
    		"title": "江苏省江宁区发布大雾黄色预警",
    		"level": "黄色",
    		"type": "大雾",
    		"time": "2021-11-19 06:52:14",
    		"province": "江苏省",
    		"city": "南京市",
    		"district": "江宁区",
    		"content": "江宁区气象台2021年11月19日06时49分发布大雾黄色预警信号:目前我区南部部分街道能见度较低,预计未来12小时我区横溪街道、禄口街道、湖熟街道等部分街道可能出现能见度不足500米的雾,请注意防范。(预警信息来源:国家预警信息发布中心)"
    	},
    	"event_title": "自然灾害预警",
    	"event_type": 4,
    	"msg_id": 6947,
    	"push_time": "2021-11-19 00:00"
    }
    
  • 星座运势

    # 字段说明

    字段名 类型 说明
    name string 星座名称
    all string 综合指数
    color string 幸运色
    health string 健康指数
    love string 爱情指数
    money string 财运指数
    QFriend string 速配星座
    summary string 今日概述
    work string 工作指数
    number string 幸运数字

    # Json示例

    {
    	"data": {
    		"Id": 0,
    		"QFriend": "巨蟹座",
    		"all": "80",
    		"color": "白色",
    		"health": "80",
    		"love": "55",
    		"money": "60",
    		"name": "双子座",
    		"number": 1,
    		"summary": "今天双子座在感情方面会遇到一些危机,你会觉得伴侣在某些事情上对你有所隐瞒,单身的小伙伴容易在今天遇到桃花,两人进展不宜太快,要仔细甄别对方说出来的话哪些是真是的,哪些是过度包装。",
    		"work": "60"
    	},
    	"event_title": "星座运势",
    	"event_type": 3,
    	"msg_id": 6925,
    	"push_time": "2021-11-19 16:23"
    }
    
  • 消息推送服务

    # 字段说明

    字段名 类型 说明
    data.content object 消息推送内容
    data.title string 消息推送标题

    # Json示例

    {
    "data": {
    	"content": "当前人数已达60人,即将超过阈值",
    	"title": "人数超限预警"
    },
    "event_title": "消息推送API",
    "event_type": 5,
    "msg_id": 121,
    "push_time": "2021-11-19 00:00"
    }
    

消息推送服务

产品说明

  • 服务介绍

    当你发送一封邮件,或者想通过钉钉机器人、企业微信机器人、微信公众号等发送一条消息通知到对应的群组或者个人时;首先,我们需要查看对应官网的文档,然后申请、配置、调用接口等一系列的流程,微信公众号还需要进行认证审核等操作。这些操作和流程是否让您觉得繁琐?

    基于这种情况,我们将这些消息媒介融合为一体,开放出一个接口,让您通过调用「消息推送API」就可以轻松将Html、Markdown、Json、XML等格式的自定义消息内容,推送至您所配置的微信公众号、邮件地址、钉钉群机器人、企业微信机器人,从而达到消息提醒的目的。

  • 产品规格

    消息发送频率(请求限制):每小时不超过50次
    ⚠️ 为了保障推送服务的可用稳定,请勿推送黄赌毒等违法信息。

使用流程

使用“消息推送服务”需要3步:

  • Step1. 创建服务
    1. 填写服务名称(如:余额预警、信用卡还款提醒等)
    2. 选择推送方式(即消息接受的终端,如:手机、邮件、微信公众号等,此处可多选)

183DDD8206894AF98467F05ADECA0AA9.png

  • Step2. 创建完成

    服务创建成功后,生成的Service ID(服务编码,作为每次创建服务的唯一标识)用于后续接口调用。
    bQeDR3PiPVQpRLAT75csGA.png

  • Step3. 调用接口

    前往下面消息推送API文档,根据文档规范配置推送内容。

API文档

  • 请求地址

    https://tui.juhe.cn/api/plus/pushApi

  • 请求方式

    POST

  • Content-Type

    application/x-www-form-urlencoded

  • 请求参数
    参数名称 参数类型 是否必须 说明
    token char(32) 用户令牌,在个人中心页面查看获取
    title varchar(20) 消息标题
    content varchar(4000) 消息内容
    service_id varchar(32) 服务编号,在服务创建后自动生成ServiceID,是服务的唯一标识,可在每个服务的详情页中查看
    doc_type varchar(32) 消息格式,支持txt、html、json、markdown,默认为txt格式,在消息详情页面,会以您当前选择的消息格式的类型展示你发送的消息内容
  • 响应参数
    字段名称 字段类型 说明
    token int 状态码
    title char(32) 响应说明
    content object 可忽略
    service_id object 可忽略
  • 响应数据示例
     { 
        "code": 200,       
        "params": null,       
        "reason": "success",       
        "result": null     
     }
    
  • 响应状态码说明
    状态码 说明
    200 请求成功
    101 token错误
    102 service_id错误
    103 创建的服务已经被关闭,请核实
    104 标题长度错误
    105 内容长度错误
    106 服务异常,系统繁忙
    107 请求路径错误
    108 系统错误

示例代码

  • curl
    curl -d 'token=****&service_id=***&title=这是标题&content=这是内容' 
    https://tui.juhe.cn/api/plus/pushApi
    

    返回结果:

    {"code":200,"params":null,"reason":"success","result":null}
    
  • PHP
    <?php
    //接口url
    $url = "https://tui.juhe.cn/api/plus/pushApi";
    $token = "******";
    $service_id = "*****";
    $title = "这是标题";
    $content = "这是内容";
    $doc_type = "txt";
    $response = post($url, [
        'token' => $token,
        'service_id' => $service_id,
        'title' => $title,
        'content' => $content,
        'doc_type' => $doc_type
    ]);
    //请求聚合接口所得到的响应报文
    echo "接口返回:" . PHP_EOL;
    echo $response;
    
    
    /**
     * 发送post请求
     * @param string $url 请求地址
     * @param array $post_data post键值对数据
     * @return string
     */
    function post(string $url, array $post_data)
    {
        $body = http_build_query($post_data);
        $options = [
            'http' => [
                'method' => 'POST',
                'header' => 'Content-type:application/x-www-form-urlencoded',
                'content' => $body,
                'timeout' => 60 // 超时时间(单位:s)
            ]
        ];
        $context = stream_context_create($options);
        return file_get_contents($url, false, $context);
    }
    
  • Java
    package cn.juhe.controller;
    
    import org.springframework.http.HttpEntity;
    import org.springframework.http.HttpHeaders;
    import org.springframework.http.HttpMethod;
    import org.springframework.http.MediaType;
    import org.springframework.util.LinkedMultiValueMap;
    import org.springframework.util.MultiValueMap;
    import org.springframework.web.client.RestTemplate;
    
    /**
     * @author micro.cloud.fly
     * @date 2021/11/10 4:58 下午
     * @desc 消息推送API示例代码
     */
    public class Demo {
        public static void main(String[] args) {
    
            //接口url
            String url = "https://tui.juhe.cn/api/plus/pushApi";
            String token = "***";
            String service_id = "***";
            String title = "这是标题";
            String content = "这是内容";
            String doc_type = "txt";
            RestTemplate restTemplate = new RestTemplate();
            HttpHeaders headers = new HttpHeaders();
            HttpMethod method = HttpMethod.POST;
            // 以表单的方式提交
            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
            //将请求头部和参数合成一个请求
            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
            params.add("token", token);
            params.add("service_id", service_id);
            params.add("title", title);
            params.add("content", content);
            params.add("doc_type", doc_type);
            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers);
            String s = restTemplate.postForObject(url, requestEntity, String.class);
            System.out.println(s);
    
        }
    }
    
  • GO
    package main
    
    import (
       "fmt"
       "io/ioutil"
       "net/http"
       "strings"
    )
    
    func main() {
    
       //接口url
       var url = "https://tui.juhe.cn/api/plus/pushApi"
       contentType := "application/x-www-form-urlencoded"
       data := `token=***&service_id=***&title=这是标题&content=这是内容`
       resp, err := http.Post(url, contentType, strings.NewReader(data))
       if err != nil {
          fmt.Printf("错误, err:%v\n", err)
          return
       }
       defer resp.Body.Close()
       b, err := ioutil.ReadAll(resp.Body)
       if err != nil {
          fmt.Printf("错误, err:%v\n", err)
          return
       }
       fmt.Println("返回:", string(b))
    
    }
    
  • Python
    import requests
    body = {"token": "***", "service_id": "***","title":"这是内容","content":"这是内容"}
    r = requests.post("https://tui.juhe.cn/api/plus/pushApi", data=body)
    print(r.text)
    print(r.status_code)
    

评论区

励志做一条安静的咸鱼,从此走上人生巅峰。

0

0

0

举报