需求:用户关注公众号后
,如何在微信推送的多图文消息
中,直接打开第三方
链接,而不是站内文章?
事先说明该需求作者已经解决,但只是关注后推送。如果要求主动发送图文消息,该文章无法实现
。
如果你是运营人员
,请联系开发查看该文章,因为单纯通过公众号后台无法实现。
如果你的需求是单图文消息
,使用客服消息,或者公众号后台配置都可以实现,该篇文章对你无效
。
假设你的后台程序并没有 接管公众号消息后台配置
,那么该篇文章对你无效
。
登录微信公众号后台,打开草稿箱菜单,点击新的创作。设置其图文消息,但是在此处并没有设置外链的位置,只有设置跳转至站内文章,找了一圈也没有找到设置的地方,固然当前思路无效。无法达到效果。此方案不可取 PASS
。
当用户关注后,调用客服消息给用户发送图文消息。客服消息推送相关 微信文档
但是看后续公众号文章说明,客服消息已经不能推送多条图文消息了,
如果你硬要推送多条消息,微信只能给你返回 45008 article size out of limit 相关code 错误提示了。
具体微信描述如下:
从2018-10-12日20时起,微信接口规则调整,除公众号规定的素材群发外,不再支持多图文格式(单图文依然保留,但图文数超过1的多图文格式不再支持)
。
建议大家千千万万不要盲目的去搜索,搜到的东西,全部都是第三方平台的水文,全是在介绍推广自己平台的,实际的作用一点也没有。
举两个栗子:
还有些文章排版布局,看的头皮发麻,可能是文章太久远了对我一点用处没有起到,类似于: https://blog.csdn.net/qq_29162769/article/details/73432440
但是通过他们发的这些回答,更确定了 一定是有接口实现的
,只不过还没有找到,如何实现而已。
当用户关注公众号,可以根据事件推送相关的内容,推送的消息内容类型比较多。
详细参考 消息模块微信文档
如果你是 Java 后台开发的话,建议使用 25k Star wxJava
相关代码实现该需求。当然你也可以 微信公众号开发者文档 实现该功能。
可能会有人问,因为一个功能引入一个 pom 包并不恰当,其实当你了解过该项目后,你会了解到 开发微信相关功能会如此简单。
假设你已经下载示例项目 并且已经在 yml中 配置好了公众号配置
。这个时候可以启动项目了。
启动项目后,你可以去接管公众号服务器配置。如下图:配置好一定要点击 红框中启动配置
。
配置的服务器地址(URL)应该是 https://本机地址/app/wx/portal/{appid}
,该地址外网一定是可以访问的,具体映射方式此文章不在介绍。
配置的服务器地后。打开微信打开你配置的公众号,取消后再次关注,你可以在idea 日志中接收到 关注/取消关注
的通知。
接下来打开 builder
目录,新建文件名字为 NewsBuilder.java
,具体内容如下:
import 你的文件地址;
import com.github.binarywang.demo.wx.mp.builder;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutNewsMessage;
/**
* @author Binary Wang(https://github.com/binarywang)
*/
public class NewsBuilder extends AbstractBuilder {
@Override
public WxMpXmlOutMessage build(String content, WxMpXmlMessage wxMessage,
WxMpService service) {
WxMpXmlOutNewsMessage.Item item1 = new WxMpXmlOutNewsMessage.Item();
item1.setUrl("填写真实跳转地址");
item1.setPicUrl("填写真实图片地址");
item1.setDescription("我是介绍,虽然我没有用到");
item1.setTitle("我是标题");
WxMpXmlOutNewsMessage.Item item2 = new WxMpXmlOutNewsMessage.Item();
item2.setUrl("填写真实跳转地址");
item2.setPicUrl("填写真实图片地址");
item2.setDescription("我是介绍,虽然我没有用到");
item2.setTitle("我是标题");
WxMpXmlOutNewsMessage.Item item3 = new WxMpXmlOutNewsMessage.Item();
item3.setUrl("填写真实跳转地址");
item3.setPicUrl("填写真实图片地址");
item3.setDescription("我是介绍,虽然我没有用到");
item3.setTitle("我是标题");
return WxMpXmlOutMessage.NEWS().addArticle(item1, item2, item3).fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()).build();
}
}
打开:handler
目录,找到 SubscribeHandler.java
相关类,配置后你要推送的内容即可。
如下图代码所示
@Component
public class SubscribeHandler extends AbstractHandler {
@Override
public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
Map<String, Object> context, WxMpService wxMpService,
WxSessionManager sessionManager) throws WxErrorException {
return new NewsBuilder().build("", wxMessage, wxMpService);
}
}
重新启动项目
,再次点击关注后,尝试下是否可以推送图文信息。
弊端
:无法在图文中直接打开小程序,找寻了多种方式并没有找到合适的方式,如果找到会更新此文章。
至此,跳转三方链接的问题,已经解决完毕了。当然实现方法不止当前一种,如果你有好的建议,或者当前文章有什么问题,可以在评论区告知,并提出你的意见。
联系方式:微信 (Base64):eWN3MTQ5OTg=