1. 程式人生 > >通過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(可選)    時間,不傳即為伺服器接收到訊息的傳送請求的時間

五、示例

圖片標題圖片標題 
圖片標題圖片標題 

六、開始使用

掃描下面二維碼或微信搜尋【飛鴿快信】關注微信公眾號開始使用: 
圖片標題

七、使用幫助