微信公众号第三方开发之五配置自定义菜单

在接下来讲解中,我还是先说下自己的思路方案,毕竟每人需求不一样,做法也不一样!!【我是先通过获取图文素材,来创建自定义菜单的】

 

1、进入菜单配置列表中心----展示的是我们已经配置好的菜单

微信公众号第三方开发之五配置自定义菜单

1、那如果还没有菜单,列表放空,但是要有创建菜单按钮,提示授权用户自主创建菜单。

 

2、一开始还未做刷新图文模块的时候,我获取图文消息是在创建菜单的时候进行的。那么这个功能做好后,其实在创建自定义菜单就可以取消该步骤了,毕竟如果我在公众平台添加素材后,没地方刷新到本地,每次只能通过点击创建菜单来刷新不是很坑爹!!

 

在做菜单模块的时候,我先跳转到member/index?wx_id=xxx,然后记录session,可是不知道为什么接下来我定义的公共变量里头在去获取session的值,却老是时有时无的,最后我只能每个方法都传递参数已保证程序能正常运作!【题外话】

 

1、创建自定义菜单,微信文档还是要仔细看,该提示的也要提示好不要后期客户来反馈这也不行那也不行的。

微信公众号第三方开发之五配置自定义菜单

重点在选择图文素材这里,我的做法是:

     先去微信查找素材总数,存入到用户表,然后通过count在发送请求查找素材列表循环存入到自己的表里头。核心代码如下:

 

获取素材总数和列表api

以及永久素材实体类:

//永久图文素材类

    public class ResponseGetNews : WxJsonResult

    {

        public int total_count { get; set;}//该类型的素材的总数

        public int item_count { get; set;}//本次调用获取的素材的数量

        public List<c_item> item { get; set;}

        public DateTime update_time { get; set;}//这篇图文消息素材的最后更新时间

    }

 

    public class c_item

    {

        public string media_id { get; set;}

        public c_news_item content { get;set;}

    }

    public class c_news_item

    {

        public List<c_news_article> news_item { get; set;}

    }

    public class c_news_article

    {

        //图文消息的标题

        public string title { get; set;}

        //图文消息的封面图片素材id

        public string thumb_media_id { get; set;}

        //是否显示封面,0false,即不显示,1true,即显示

        public string show_cover_pic { get; set;}

        //作者

        public string author { get; set;}

        //图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空

        public string digest { get; set;}

        //图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS

        public string content { get; set;}

        //图文页的URL,或者,当获取的列表是图片素材列表时,该字段是图片的URL

        public string url { get; set;}

        //图文消息的原文地址,即点击阅读原文后的URL

        public string content_source_url { get; set;}

    }

 微信公众号第三方开发之五配置自定义菜单

 微信公众号第三方开发之五配置自定义菜单

最后的最后,发布自定义菜单,这里需要注意,大神博客方法,都是传递data对象,如果你是要用这个方法,那么创建自定义菜单需要的参数得到这里设置,我为了代码明了点,直接吧所有数据拼接成str串,最后在方法里头添加了第二个参数,如果这个data对象不为空,那么首选就是我们在方法里头创建的这个data对象,否则选择自己传入的data2参数。

【例如:str="{
    \"button\": [
        {
           \"type\": \"view_limited\",
           \"name\": \"图文消息\",
           \"media_id\": \"MEDIA_ID2\"
        }
    ]
}"】

微信公众号第三方开发之五配置自定义菜单

最终完成如下:

微信公众号第三方开发之五配置自定义菜单

微信公众号第三方开发之五配置自定义菜单

上一篇:微信小程序打开地图选择位置


下一篇:[转]SpeedPHP微信接口扩展