1 网上关于这个的文章很多,大家应该都可以照着做就行了,我只是把相关问题总结下,并记录。
2 准备工作
2.1准备微信公众号
2.1.1 注册公众号,我注册的是个人的,当然企业的最好了,群发比较方便,不过个人也凑合用。
网站注册一个公众号,如果出现注册失败,请换邮箱,我试了我的所有qq都不行,我用的126成功了,所以一旦注册失败请自觉换邮箱。
2.1.2 登录公众号
这时候大概会让你绑定自己的管理微信号,扫个码,然后绑定银行卡(坑...)
最后大概是这个界面
点击网页上面的订阅号,然后让小伙伴扫一下二维码关注,就会有一个用户,点击总用户数,单机用户的名称的超链接位置,然后会大概是这样的一个网络url,
https://mp.weixin.qq.com/cgi-bin/singlesendpage?t=message/send&action=index&tofakeid=oVa4RwSPu3O7HC_5iDN8HowWQ6k&token=2020697380&lang=zh_CN,这个fakeid就是我们需要的,注意是fakeid,而不是微信id号,而你瞎发一个的话,一定是system error
2.2 准备API
[root@Zabbix-Server ~]# cd /etc/zabbix/alertscripts(你的报警脚本的位置,其实无所谓,不过为了好管理) [root@Zabbix-Server alertscripts]# git clone [root@Zabbix-Server ]# cd WeiXin-Private-API [root@Zabbix-Server WeiXin-Private-API]# sed 's#CURLOPT_SSL_VERIFYHOST, 1#CURLOPT_SSL_VERIFYHOST, 2#' include/LeaWeiXinClient.php [root@Zabbix-Server WeiXin-Private-API]# cat config.php <?php // 全局配置 $G_ROOT = dirname(__FILE__); $G_CONFIG["weiXin"] = array( 'account' => '你申请的公众号的登录名', 'password' => '你申请的公众号的登录密码', 'cookiePath' => $G_ROOT. '/cache/cookie', // cookie缓存文件路径 'webTokenPath' => $G_ROOT. '/cache/webToken', // webToken缓存文件路径 ); [root@Zabbix-Server WeiXin-Private-API]# cat test.php | egrep -v '//|^$' <?php require "config.php"; require "include/WeiXin.php"; $weiXin = new WeiXin($G_CONFIG['weiXin']); $testFakeId = "$argv[1]"; $msg="$argv[3]"; print_r($weiXin->send($testFakeId, "$msg")); 测试发微信 网友是写了个脚本weixin.sh [root@Zabbix-Server WeiXin-Private-API]# cat ../weixin.sh /usr/bin/php /etc/zabbix/alertscripts/WeiXin-Private-API/test.php "$1" "$2" "$3" 测试过程 ①随便写个fakeid [root@Zabbix-Server WeiXin-Private-API]# ../weixin.sh liuliancao '' 'hello' PHP Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 PHP Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 stdClass Object ( [base_resp] => stdClass Object ( [ret] => 200003 [err_msg] => invalid session ) ) ②用关注你的人的fakeid然后就发现可以发了,由于我是个人用户,我怀疑可能有多方面的限制吧,后来也出现了上面的错误,这里我还发现如果清空一下缓存就又好了,以下是我的操作情况 多次发后报错 [root@Zabbix-Server alertscripts]# ./weixin.sh oVa4RwSPu-3O7HC_5iDN8HowWQ6k "" "hel" PHP Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 PHP Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 stdClass Object ( [base_resp] => stdClass Object ( [ret] => 200003 [err_msg] => invalid session ) ) 清空缓存 [root@Zabbix-Server alertscripts] echo ''> WeiXin-Private-API/cache/webToken [root@Zabbix-Server alertscripts] echo ''> WeiXin-Private-API/cache/cookie 再次发送 [root@Zabbix-Server alertscripts]# ./weixin.sh oVa4RwSPu-3O7HC_5iDN8HowWQ6k "" "hel" PHP Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 PHP Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33 stdClass Object ( [base_resp] => stdClass Object ( [ret] => 0 [err_msg] => ok ) )
然后大致总结如下吧,至于web添加我就不想演示了。