通過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(可選) 時間,不傳即為伺服器接收到訊息的傳送請求的時間
五、示例
六、開始使用
掃描下面二維碼或微信搜尋【飛鴿快信】關注微信公眾號開始使用: