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

来源:互联网 发布:mac app store打开慢 编辑:程序博客网 时间:2024/05/24 13:28

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

 

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


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

 

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

 

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

 

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


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

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

 

获取素材总数和列表api

以及永久素材实体类:

//永久图文素材类

    public classResponseGetNews :WxJsonResult

    {

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

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

        publicList<c_item> item {get;set;}

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

    }

 

    publicclass c_item

    {

        public string media_id {get;set;}

        public c_news_item content {get;set;}

    }

    publicclass c_news_item

    {

        publicList<c_news_article> news_item {get;set;}

    }

    public class c_news_article

    {

        //图文消息的标题

        public stringtitle { 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 stringdigest { get;set;}

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

        public string content {get;set;}

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

        public stringurl { 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\"
        }
    ]
}"】


最终完成如下:


0 0