監(jiān)控服務(wù)調(diào)用微信API如何給自己發(fā)告警信息
今天心血來(lái)潮,想試試用微信公眾號(hào)給自己發(fā)消息。主要是想如何運(yùn)維監(jiān)控的設(shè)備故障時(shí)可以通過(guò)微信告警。
查了一下開(kāi)發(fā)者文檔,發(fā)現(xiàn)普通未認(rèn)證訂閱號(hào)不能通過(guò)API群發(fā),認(rèn)證訂閱號(hào)每天只能群一條信號(hào),而認(rèn)證的服務(wù)號(hào)每月發(fā)給每個(gè)月戶也只有4條。瞬間心涼了一半,于是網(wǎng)上又搜了一下,發(fā)現(xiàn)有個(gè)“WeiXin-Private-API-master”的東東說(shuō)是可以單獨(dú)給每個(gè)關(guān)注的用戶發(fā)送,于是下載試了一下,失敗。再去查查官方文檔,已找不到這個(gè)“single send”接口,官方的FAQ里回答也是沒(méi)有這個(gè)功能。
最后使用公眾平臺(tái)測(cè)試賬號(hào),最后總算成功了。具體的步驟如下:
注:測(cè)試賬號(hào)每天可以發(fā)送100條分組群發(fā)信息和100條openid列表群發(fā)信息。
1.注冊(cè)公眾平臺(tái)訂閱號(hào)(個(gè)人的未認(rèn)證訂閱號(hào)即可)
2.開(kāi)通開(kāi)發(fā)者中心功能,注冊(cè)公眾平臺(tái)測(cè)試賬號(hào)。獲取到appID和appsecret
3.通過(guò)appID和appsecret獲取access_token。(也即是臨時(shí)憑證,有效時(shí)間為兩小時(shí),需要在到期前去更新)。獲取的url為
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
(將上面的APPID和APPSECRET替換成第2步獲取到的ID和密碼)
4.使用個(gè)人微信號(hào)關(guān)注這個(gè)測(cè)試賬號(hào),關(guān)注后在右方會(huì)出現(xiàn)加密后的微信號(hào)(也就是OpenID)
5.通過(guò)腳本調(diào)用API,這里用PHP,以O(shè)penID列表群發(fā)為例
<?php $post_data = array( "touser"=>array('OpenID1', 'OpenID2'), //把OpenID替換成第4步獲取到的加密微信號(hào)注意這里至少要兩個(gè)OpenID,否則會(huì)返回錯(cuò)誤信息。如果只有一個(gè)賬號(hào)關(guān)注了的話,可以自己再隨便造一個(gè),或兩個(gè)OpenID寫(xiě)成一樣 "msgtype"=> "text", "text" => array( "content" => "I am msg.") ); $post_data = json_encode($post_data) ; //因?yàn)锳PI只接受json的格式的數(shù)據(jù),所以要進(jìn)行json encode,當(dāng)然,以上的代碼也可直接寫(xiě)成下面這樣: //$postdata = '{"touser":["OpenID1","OpenID2"],"msgtype":"text","text":{"content":"I am msg."}}'; $url='https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN'; //把ACCESS_TOKEN替換成第3步獲取到的token $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_POSTFIELDS, $p); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //上面兩行是為了解決https證書(shū)問(wèn)題,不加的話會(huì)報(bào)錯(cuò),所以直接信任證書(shū)了。 $result=curl_exec($ch); echo curl_error($ch);curl_close($ch); print_r($result);
6.用瀏覽器打開(kāi)這個(gè)頁(yè)面,顯示成功:
7.在手機(jī)上查看訂閱號(hào)發(fā)來(lái)的信息。(有一些延遲,所以對(duì)于需要緊急處理的監(jiān)控不適合用微信訂閱號(hào)來(lái)發(fā))
最后再?gòu)?qiáng)調(diào)一下,為了騰訊了為安全,使用access_token,兩小時(shí)就超時(shí),所以要在超時(shí)前重新獲取,可以直接在代碼里進(jìn)行刷新獲取。測(cè)試賬號(hào)每天可獲取最大次數(shù)為2000次。
以上內(nèi)容就是監(jiān)控服務(wù)調(diào)用微信API如何給自己發(fā)告警信息的全部?jī)?nèi)容,希望大家喜歡。
相關(guān)文章
linux使用dd命令查看服務(wù)器磁盤(pán)IO性能
dd命令是Linux系統(tǒng)中的一個(gè)非常強(qiáng)大的工具,它可以用于復(fù)制文件、轉(zhuǎn)換文件格式、備份數(shù)據(jù)等,這篇文章主要介紹了linux查看服務(wù)器磁盤(pán)IO性能,需要的朋友可以參考下2024-02-02Git客戶端TortoiseGit(Windows系統(tǒng))的使用方法
這篇文章主要介紹了Git客戶端TortoiseGit(Windows系統(tǒng))的使用方法,需要的朋友可以參考下2014-09-09利用Ansible實(shí)現(xiàn)批量服務(wù)器自動(dòng)化管理詳解
Ansible是基于Python開(kāi)發(fā)的,采用YAML語(yǔ)言編寫(xiě)自動(dòng)化腳本playbook,?可以在Linux、Unix等系統(tǒng)上運(yùn)行,?本文主要介紹了如何利用Ansible實(shí)現(xiàn)批量服務(wù)器自動(dòng)化管理,需要的可以參考下2024-01-01windows2008系統(tǒng)中rsync計(jì)劃任務(wù)返回0x1問(wèn)題處理
本文給大家分享的是小編在給windows2008配置rsync同步的過(guò)程中遇到的一個(gè)問(wèn)題,在win03系統(tǒng)下可以正常返回0x0,結(jié)果到了win08系統(tǒng)中就變成了0x1,雖然也同步成功了,但是作為一個(gè)完美主義強(qiáng)迫癥患者,堅(jiān)決不能忍,經(jīng)過(guò)一番查證,找到了解決辦法,分享給大家2017-04-04基于epoll實(shí)現(xiàn) Reactor服務(wù)器的詳細(xì)過(guò)程
在我們調(diào)用epoll_create的時(shí)候會(huì)創(chuàng)建出epoll模型,這個(gè)模型也是利用文件描述類似文件系統(tǒng)的方式控制該結(jié)構(gòu),這篇文章主要介紹了基于epoll實(shí)現(xiàn) Reactor服務(wù)器的詳細(xì)過(guò)程,需要的朋友可以參考下2023-12-12