微信公眾號開發-java版 騰訊課堂(自定義菜單 菜單點擊事件)


接口調用請求說明

http請求方式:POST(請使用https協議) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

click和view的請求示例

 {
     "button":[
     {    
          "type":"click",
          "name":"今日歌曲",
          "key":"V1001_TODAY_MUSIC"
      },
      {
           "name":"菜單",
           "sub_button":[
           {    
               "type":"view",
               "name":"搜索",
               "url":"http://www.soso.com/"
            },
            {
                 "type":"miniprogram",
                 "name":"wxa",
                 "url":"http://mp.weixin.qq.com",
                 "appid":"wx286b93c14bbf93aa",
                 "pagepath":"pages/lunar/index"
             },
            {
               "type":"click",
               "name":"贊一下我們",
               "key":"V1001_GOOD"
            }]
       }]
 }

參數說明

參數 是否必須 說明
button 一級菜單數組,個數應為1~3個
sub_button 二級菜單數組,個數應為1~5個
type 菜單的響應動作類型,view表示網頁類型,click表示點擊類型,miniprogram表示小程序類型
name 菜單標題,不超過16個字節,子菜單不超過60個字節
key click等點擊類型必須 菜單KEY值,用於消息接口推送,不超過128字節
url view、miniprogram類型必須 網頁 鏈接,用戶點擊菜單可打開鏈接,不超過1024字節。 type為miniprogram時,不支持小程序的老版本客戶端將打開本url。
media_id media_id類型和view_limited類型必須 調用新增永久素材接口返回的合法media_id
appid miniprogram類型必須 小程序的appid(僅認證公眾號可配置)
pagepath miniprogram類型必須 小程序的頁面路徑

 

 

菜單構建比較簡單主要是實體類的封裝和https post json格式請求就會自已生成菜單

菜單事件 例如

click類型點擊 返回一條xml解析成map格式 與發送消息差不多 

{CreateTime=1552903454, EventKey=V1001_TODAY_MUSIC, Event=CLICK, ToUserName=gh_eb3a1258e5e0, FromUserName=orSqw0Wo12_jzKMLfW1VRu_WdiAM, MsgType=event}


這里的msgtype 為event  EventKey=V1001_TODAY_MUSIC  Event=CLICK

 

/**
     * 給用戶發送消息 處理菜單事件
     * @param map
     * @return
     */
    public static String getResponse(Map<String, String> map) {
        BaseMessage msg = null;
        String msgType = map.get("MsgType");
        switch (msgType) {
            case "text":
                msg = dealTextMessage(map);
                break;
            case "image":

                break;
            case "voice":

                break;
            case "video":

                break;
            case "shortvideo":

                break;
            case "location":

                break;
            case "link":

                break;
            case "event":
                msg = dealEventMessage(map);
                break;
            default:
                break;
        }
        if (msg != null) {
            //xml解析對象
            XStream stream = new XStream();
            //啟用xml注釋
            stream.processAnnotations(TextMessage.class);
            stream.processAnnotations(NewsMessage.class);
            String s = stream.toXML(msg);
            return s;
        }
        return null;
    }

 

 

 

    /**
     * 菜單事件
     * @param map
     * @return
     */
    private static BaseMessage dealEventMessage(Map<String, String> map) {
        String event = map.get("Event");
        BaseMessage msg = null;
        switch (event) {
            case "CLICK":
                msg = switchClick(map);
                break;
            case "VIEW":
                break;


        }
        return msg;
    }

 

  /**
     * 處理click事件
     * @param map
     * @return
     */
    private static BaseMessage switchClick(Map<String, String> map) {
        BaseMessage msg = null;
        switch (map.get("EventKey")) {
            case "V1001_TODAY_MUSIC":
                msg = new TextMessage(map, "<<七友>>\n已記不起我也有權利愛人\n" +
                        "誰人曾照顧過我的感受\n" +
                        "待我溫柔吻過我傷口\n" +
                        "能得到的安慰是失戀者得救后\n" +
                        "很感激忠誠的狗\n" +
                        "誰人曾介意我也不好受\n" +
                        "為我出頭碰過我的手");
                break;
            case "V1001_GOOD":
                msg = new TextMessage(map, "感謝你的鼓勵");
                break;
            case "V1001_TODAY_ZIXUN":
                msg = new TextMessage(map, "還沒有哦");
                break;
        }
        return msg;
    }

還是由上一篇的給用戶發送消息 延伸一下 視頻中有整合提取圖片文字功能,我沒有做是第三方接口與聊天機器人 大同小異

效果圖:

 

 百度雲源碼:

鏈接:https://pan.baidu.com/s/1gH3dn1GptN-aWfDyOBgP4g
提取碼:xdv4
復制這段內容后打開百度網盤手機App,操作更方便哦

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM