码迷,mamicode.com
首页 > 微信 > 详细

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

时间:2016-05-12 14:54:21      阅读:554      评论:0      收藏:0      [点我收藏+]

标签:

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

 

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

技术分享

最终完成如下:

技术分享

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

标签:

原文地址:http://blog.csdn.net/eadio/article/details/51364072

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!