200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 微信公众号推送多图文消息 直接跳转至外部链接(wxJava)

微信公众号推送多图文消息 直接跳转至外部链接(wxJava)

时间:2021-02-27 12:59:12

相关推荐

微信公众号推送多图文消息 直接跳转至外部链接(wxJava)

文章目录

前言一、解决思路1.公众号后台设置2.客服消息3.google & baidu 寻找答案4.关注后自动推送(正解)总结

前言

需求:用户关注公众号后,如何在微信推送的多图文消息中,直接打开第三方链接,而不是站内文章?

事先说明该需求作者已经解决,但只是关注后推送。如果要求主动发送图文消息,该文章无法实现

如果你是运营人员,请联系开发查看该文章,因为单纯通过公众号后台无法实现。

如果你的需求是单图文消息,使用客服消息,或者公众号后台配置都可以实现,该篇文章对你无效

假设你的后台程序并没有接管公众号消息后台配置那么该篇文章对你无效

一、解决思路

1.公众号后台设置

登录微信公众号后台,打开草稿箱菜单,点击新的创作。设置其图文消息,但是在此处并没有设置外链的位置,只有设置跳转至站内文章,找了一圈也没有找到设置的地方,固然当前思路无效。无法达到效果。此方案不可取 PASS

2.客服消息

当用户关注后,调用客服消息给用户发送图文消息。客服消息推送相关 微信文档

但是看后续公众号文章说明,客服消息已经不能推送多条图文消息了,

如果你硬要推送多条消息,微信只能给你返回 45008 article size out of limit 相关code 错误提示了。

具体微信描述如下:

从-10-12日20时起,微信接口规则调整,除公众号规定的素材群发外,不再支持多图文格式(单图文依然保留,但图文数超过1的多图文格式不再支持)

3.google & baidu 寻找答案

建议大家千千万万不要盲目的去搜索,搜到的东西,全部都是第三方平台的水文,全是在介绍推广自己平台的,实际的作用一点也没有。

举两个栗子:

还有些文章排版布局,看的头皮发麻,可能是文章太久远了对我一点用处没有起到,类似于: /qq_29162769/article/details/73432440

但是通过他们发的这些回答,更确定了一定是有接口实现的,只不过还没有找到,如何实现而已。

4.关注后自动推送(正解)

当用户关注公众号,可以根据事件推送相关的内容,推送的消息内容类型比较多。

详细参考 消息模块微信文档

如果你是 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(/binarywang)*/public class NewsBuilder extends AbstractBuilder {@Overridepublic 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相关类,配置后你要推送的内容即可。

如下图代码所示

@Componentpublic class SubscribeHandler extends AbstractHandler {@Overridepublic WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,Map<String, Object> context, WxMpService wxMpService,WxSessionManager sessionManager) throws WxErrorException {return new NewsBuilder().build("", wxMessage, wxMpService);}}

重新启动项目,再次点击关注后,尝试下是否可以推送图文信息。

总结

弊端:无法在图文中直接打开小程序,找寻了多种方式并没有找到合适的方式,如果找到会更新此文章。

至此,跳转三方链接的问题,已经解决完毕了。当然实现方法不止当前一种,如果你有好的建议,或者当前文章有什么问题,可以在评论区告知,并提出你的意见。

联系方式:微信 (Base64):eWN3MTQ5OTg=

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。