zabbix微信 | 微信对接自己服务器(2)

zabbix微信 | 微信对接自己服务器(2),第1张

上接使用微信告警

1.本地服务器与微信服务器的信任

2.本地部署微信加密文件

在本地服务器(具有外网ip)部署php+nginx,使其可以在公网访问

3.开启回调模式

1、 准备服务器

由于我们要使用微信公众平台提供的接口实现自动回复等功能,所以我们需要有自己的信息处理服务器。一个简单的信息处理过程

我们的服务器端可以解析收到的微信消息,并对用户动作进行反馈。

当前我们测试用的服务器搭建在sina app engine上,搭建流程见《Sina app engin 简单使用》

服务器端主要java代码如下:

网址接入代码:(用于启用消息接口)

@RequestMapping("checkJoin") @ResponseBody public String checkJoin(HttpServletRequest request, HttpServletResponse response, String signature,String timestamp, String nonce,String echostr) throws IOException { if(echostr!=null){//为验证请求 return echostr}

处理用户文本信息代码:(在消息接口启用后使用)

@RequestMapping("checkJoin") @ResponseBody public String checkJoin(HttpServletRequest request, HttpServletResponse response, String signature,String timestamp, String nonce,String echostr) throws IOException { String postStr=nulltry{ postStr=this.readStreamParameter(request.getInputStream())}catch(Exception e){ e.printStackTrace()} if (null!=postStr&&!postStr.isEmpty()){ Document document=nulltry{ document = DocumentHelper.parseText(postStr)}catch(Exception e){ e.printStackTrace()} if(null==document){ return""} Element root=document.getRootElement()String fromUsername = root.elementText("FromUserName")String toUsername = root.elementText("ToUserName")String keyword = root.elementTextTrim("Content")String msgId = root.elementTextTrim("MsgId")String time = new Date().getTime()+""String textTpl = "<xml>"+ "<ToUserName><![CDATA[%1$s]]></ToUserName>"+ "<FromUserName><![CDATA[%2$s]]></FromUserName>"+ "<CreateTime>%3$s</CreateTime>"+ "<MsgType><![CDATA[%4$s]]></MsgType>"+ "<Content><![CDATA[%5$s]]></Content>"+ "<FuncFlag>0</FuncFlag>"+ "</xml>"if(null!=keyword&&!keyword.equals("")) { String msgType = "text"String contentStr =keyword+ " 你好"String resultStr = textTpl.format(textTpl, fromUsername, toUsername, time, msgType, contentStr)weixin.setFromUserName(fromUsername)weixin.setCreateTime(time)weixin.setContent(contentStr)weixin.setMsgType(msgType)weixin.setToUserName(toUsername)weixin.setMsgId(msgId)return resultStr}else{ return "Input something..."} }else { return ""} } //从输入流读取post参数 public String readStreamParameter(ServletInputStream in){ StringBuilder buffer = new StringBuilder()BufferedReader reader=nulltry{ reader = new BufferedReader(new InputStreamReader(in))String line=nullwhile((line = reader.readLine())!=null){ buffer.append(line)} }catch(Exception e){ e.printStackTrace()}finally{ if(null!=reader){ try { reader.close()} catch (IOException e) { e.printStackTrace()} } } return buffer.toString()}

1、 启用消息接口

登陆微信公众平台,选择:高级功能,

可以看到页面上有‘编辑模式’和‘开发模式’两个选择。默认开启‘编辑模式’。

进入编辑模式并关闭。

进入开发模式,点击成为开发者进入如下页面:

特别注意是URL是你在‘2准备服务器’中自己服务器的访问路径(即接收微信服务器发送信息的url地址),必须以http://开头,且为80端口。

Token 可以自定义。

填好后点击提交,这会有下面这些结果

(1)你的服务器没有正确响应Token验证,请阅读消息接口使用指南

这样回头检查一下各项配置是否正确。如果确定配置没有问题,请按下面的方法检查

(2)请求URL超时(超过5s)

你的服务器在国外,或者服务器网速不给力,一般多试几次就可以了。如果经常这样,就需要考虑更换服务器

(3)提交成功

恭喜你,配置成功了。

1、 功能测试:

(1) 使用普通账号关注我们的公众账号。

(2) 发送消息‘1’给公众账号。

(3) 如果公众账号返回‘1你好’。则测试成功。

1、通过应用商城,搜索政务微信后进行下载安装。

2、点击政务微信图标,打开客户端登录界面并点击右下角同意按钮后,进入设置服务器页面。输入组织机构域yunnansheng后,点击下方开始使用。

3、选择下方账号登录后,进入账号和密码输入窗口。点选最下方的找回账号密码。

4、输入通讯录收集时提供的手机号码,用于接收验证码和登录。进行下一步操作,完成相应操作后即可登录政务微信。

5、登录成功后,在操作页面点选需申请办理事项,完善个人信息、家庭信息。

6、提交信息完成申请。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/565193.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-02
下一篇2023-07-02

发表评论

登录后才能评论

评论列表(0条)

    保存