未认证的个人订阅号想实现由一个菜单,然后可以自动回复关键词(回复结果由数据库查询获得 不要那种在微信后台手动一个个添加的)。
目前遇到的问题是,开启开发者模式,关键词回复了,但是在微信公众号后台界面里设置的菜单变没了。开发者开启好像就自动停了,但是我这个号又没有用代码创建菜单的权限。敢问:怎么搞?
感觉应该可以搞的 。 我看不少订阅号都是没认证的 也做到了自动回复+菜单
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN没有权限 没有权限 没有权限 !!!!
當然可以,我的公眾號就行的
和有没有认证没有什么关系,参考:
https://my.oschina.net/fragile/blog/177443
微信有接口创建 自定义菜单创建接口
自定义回复可自行对request解析然后对response做出响应的封装, 类似CoreService.processRequest(request);
参考微信文档
@RequestMapping(method = {RequestMethod.GET})
public void doGet(HttpServletRequest request, HttpServletResponse response)throws Exception{
// 微信加密签名
String signature = request.getParameter("signature");
// 时间戳
String timestamp = request.getParameter("timestamp");
// 随机数
String nonce = request.getParameter("nonce");
// 随机字符串
String echostr = request.getParameter("echostr");
PrintWriter out = response.getWriter();
// 请求校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败
if (SignUtil.checkSignature(signature, timestamp, nonce,appConfig.getApp_token())) {
out.print(echostr);
}
out.close();
out = null;
}
@RequestMapping(method = {RequestMethod.POST})
public void doPost(HttpServletRequest request, HttpServletResponse response)throws Exception{
// 调用核心业务类接收消息、处理消息
String respXml = CoreService.processRequest(request);
response.setContentType("text/html;charset=utf-8");
// 响应消息
PrintWriter out = response.getWriter();
out.print(respXml);
out.close();
}
开启开发者模式 关键字回复好做,但是你没有创建菜单的权限,菜单就没法做(还是老老实实交200认证费吧)。
关键字回复:可以用你绑定的服务页面,获取用户发送的消息,同时可以xml格式回复用户。
你使用开发者模式之后,从数据库里面查询得到结果并发送消息。请问你数据库里面的数据还不是你一条规则一条规则的加上去的啊?这跟你微信不开启开发者模式直接在微信后台编辑菜单和回复有什么区别?
TX就给你了两条路:1.开启开发者模式,菜单编辑,和菜单点击事件都是通过开发接口决定。2.不开启开发者模式,菜单编辑和菜单点击事件都是通过微信后台决定