通过java程序发送飞鸽快信(微信)消息

简介: 通过java程序发送飞鸽快信(微信)消息

一、产品介绍:


飞鸽快信微信消息是一款基于微信的实时消息推送产品,可应用于服务器告警、LINUX服务器日志、状态监控异常提醒、阀值预警、程序报错报警提醒等场景,使用微信消息代替短信发送警告通知,实现精准推送。


二、当前解决方案的弊端:


目前,对于服务器告警、故障等问题的消息通报,以往的处理方式都是通过短信通知或者邮件,但是短信已经过时了,而邮件的及时性会比较差,暴露出了越来越多的缺点:


1.短信接收延迟严重、甚至收不到,出现概率很高,很容易错过重要报警消息,无法及时跟踪处理问题;

2.短信单条字数限制70字以内,超出被截断成多条,导致信息展示不清晰,阅读不流畅;

3.不支持群发,信息不对称、管理混乱。


作为互联网行业中的一员,在平常工作中也是深受其扰,经过仔细研究,决定开发飞鸽快信微信消息这样一款产品来解决上述问题,从此与短信带来的烦恼Say GoodBye!


三、飞鸽快信微信消息的优点:


1.基本做到零延迟,实测消息请求到推送给微信在一秒之内完成。对于微信未接收到的,系统会继续重发,最大限度保证消息不漏发。


2.一条消息内容可以写很长不会截断,用户可以在微信接收消息界面查看详情,可以更方便的了解此次服务器告警的详细内容,从而提高解决问题的效率。


3.系统内置了项目管理和成员管理,消息以项目为单位,一条消息请求系统自动群发到所有项目成员微信上。减少工作量的同时,还能方便管理人员了解各项目详细情况。


4.支持多种模板,不同类型的消息进行归类,信息内容主次分明,让人看了一目了然,大大提高了工作效率。


四、技术实现


每天或者每月定时给自己的微信发送消息

实现方式:采用飞鸽快信,每月总送1000条消息


1.申请接口

2.代码测试 使用的jar包为 httpclient-4.3.6

import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
/**
 * 发送飞鸽快信
 *
 */
public class SendWechatMsg {
    public static void sendMsg(String title,String content,String remark) throws Exception {
        // 创建一个httpclient对象
        CloseableHttpClient client = HttpClients.createDefault();
        // 创建一个post对象
        HttpPost post = new HttpPost("http://u.ifeige.cn/api/send_message");
        // 创建一个Entity,模拟表单数据
        List<NameValuePair> formList = new ArrayList<NameValuePair>();
        // 添加表单数据  
        formList.add(new BasicNameValuePair("secret", "********************************"));
        formList.add(new BasicNameValuePair("token", "*********************************"));
        formList.add(new BasicNameValuePair("key", "notice"));
        formList.add(new BasicNameValuePair("title", title));
        formList.add(new BasicNameValuePair("content", content));
        formList.add(new BasicNameValuePair("remark", remark));
        formList.add(new BasicNameValuePair("time", "time()"));
        // 包装成一个Entity对象
        StringEntity entity = new UrlEncodedFormEntity(formList, "utf-8");
        // 设置请求的内容
        post.setEntity(entity);
        // 设置请求的报文头部的编码
        // post.setHeader(new BasicHeader("Content-Type",
        // "application/x-www-form-urlencoded; charset=utf-8"));
        // 设置期望服务端返回的编码
        // post.setHeader(new BasicHeader("Accept",
        // "text/plain;charset=utf-8"));
        // 执行post请求
        CloseableHttpResponse response = client.execute(post);
        // 获取响应码
        int statusCode = response.getStatusLine().getStatusCode();
        if (statusCode == 200) {
            // 获取数据
            String resStr = EntityUtils.toString(response.getEntity());
            // 输出
            System.out.println(resStr);
        } else {
            // 输出
            System.out.println(statusCode);
        }
    }
}

参数简介(详细请移步接口网站)

群组接口 此接口用于给群组添加接收消息的用户

参数说明:

参数名称     参数类型     描述

secret    String(必选)    系统分配给您的密钥,在用户中心查看

token    String(必选)    群组token,可以群组详情里查看

uid    int(与name可选其一)    用户在飞鸽快信的ID,唯一,通过用户列表接口获得

name    string(与uid可选其一)    用户的微信昵称,通过用户列表接口获取比对


单独给用户发消息 此接口用于单独给关注管理员的用户发送消息

参数说明:

参数名称     参数类型     描述

secret    String(必选)    系统分配给您的密钥,在用户中心查看

uid    Int(必选)    接收消息人员的ID,通过用户列表获得

key    Int(可选)    消息模板KEY,不传即视为故障通报通知

title    String(必选)    消息标题,请使用您自己的内容替换

content    String(必选)    消息内容,请使用您自己的内容替换

remark    String(必选)    消息详细说明,请使用您自己的内容替换

time    Numeric(可选)    时间,不传即为服务器接收到消息的发送请求的时间


五、示例


sample-2.pngsample-2.png

sample-3.png



sample-4.png


目录
相关文章
|
11月前
|
Java 流计算
利用java8 的 CompletableFuture 优化 Flink 程序
本文探讨了Flink使用avatorscript脚本语言时遇到的性能瓶颈,并通过CompletableFuture优化代码,显著提升了Flink的QPS。文中详细介绍了avatorscript的使用方法,包括自定义函数、从Map中取值、使用Java工具类及AviatorScript函数等,帮助读者更好地理解和应用avatorscript。
185 2
利用java8 的 CompletableFuture 优化 Flink 程序
|
6月前
|
Java C语言
课时8:Java程序基本概念(标识符与关键字)
课时8介绍Java程序中的标识符与关键字。标识符由字母、数字、下划线和美元符号组成,不能以数字开头且不能使用Java保留字。建议使用有意义的命名,如student_name、age。关键字是特殊标记,如蓝色字体所示。未使用的关键字有goto、const;特殊单词null、true、false不算关键字。JDK1.4后新增assert,JDK1.5后新增enum。
103 4
|
6月前
|
Java 编译器
课时7:Java程序基本概念(注释)
课时7介绍了Java程序中的注释。编程语言有其语法和语义,注释有助于理解代码需求,防止断档。Java支持三类注释:单行(//)、多行(/* */)和文档注释(/** */)。注释不会被编译器编译。范例中展示了如何在代码中使用注释,并强调了注释对项目文档管理的重要性。
|
7月前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
2276 12
|
6月前
|
存储 Java 数据库连接
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
|
6月前
|
搜索推荐 Java Android开发
课时146:使用JDT开发Java程序
在 Eclipse 之中提供有 JDT环境可以实现java 程序的开发,下面就通过一些功能进行演示。 项目开发流程
238 0
|
8月前
|
传感器 安全 算法
消防救援支队消防员单兵装备智能养护舱电机驱动java版程序(二)
本文探讨消防救援中智能养护舱电机驱动的Java程序设计,作为系列文章第二部分。通过自动化和智能化手段,智能养护舱提升了装备维护效率与准确性。文章详细介绍了电机驱动模块的设计与实现,包括硬件选型、PID控制策略、安全保护机制及Java程序架构,确保电机精确控制、稳定性和安全性。未来将优化功能并引入智能算法和物联网技术,进一步提升装备维护智能化水平。
|
8月前
|
IDE Java 开发工具
消防救援支队消防员单兵装备智能养护舱点击驱动java版程序(一)
智能消防作战服架通过电机驱动系统提升消防员作业效率和安全性。本文介绍基于Java的电机驱动程序开发,涵盖硬件准备、软件环境搭建及驱动程序实现。重点包括串口通信配置、电机控制类设计与控制逻辑实现,确保电机高效稳定运行。通过正确配置通信协议和串口参数,并添加异常处理机制,保障系统的安全性和可靠性。
|
6月前
|
Java 开发工具
课时5:第一个Java程序
课时5介绍了编写第一个Java程序的步骤,包括创建Hello.java文件、编写“Hello World”代码、编译和运行程序。主要内容有:1) 新建并编辑Hello.java;2) 编译Java源文件生成.class文件;3) 通过命令行解释执行Java程序;4) 解释主方法的作用及信息输出操作。本课强调了类定义、文件命名规则和基本程序结构的重要性,并建议初学者使用记事本编写代码以熟悉基础语法。
|
10月前
|
SQL 安全 Java
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
160 2