自定義菜單創建接口

自定義菜單接口可實現多種類型按鈕,如下:

1、click:點擊推事件用戶點擊click類型按鈕後,微信服務器會通過消息接口推送消息類型爲event的結構給開發者(參考消息接口指南),並且帶上按鈕中開發者填寫的key值,開發者可以通過自定義的key值與用戶進行交互;
2、view:跳轉URL用戶點擊view類型按鈕後,微信客戶端將會打開開發者在按鈕中填寫的網頁URL,可與網頁授權獲取用戶基本信息接口結合,獲得用戶基本信息。
3、scancode_push:掃碼推事件用戶點擊按鈕後,微信客戶端將調起掃一掃工具,完成掃碼操作後顯示掃描結果(如果是URL,將進入URL),且會將掃碼的結果傳給開發者,開發者可以下發消息。
4、scancode_waitmsg:掃碼推事件且彈出“消息接收中”提示框用戶點擊按鈕後,微信客戶端將調起掃一掃工具,完成掃碼操作後,將掃碼的結果傳給開發者,同時收起掃一掃工具,然後彈出“消息接收中”提示框,隨後可能會收到開發者下發的消息。
5、pic_sysphoto:彈出系統拍照發圖用戶點擊按鈕後,微信客戶端將調起系統相機,完成拍照操作後,會將拍攝的相片發送給開發者,並推送事件給開發者,同時收起系統相機,隨後可能會收到開發者下發的消息。
6、pic_photo_or_album:彈出拍照或者相冊發圖用戶點擊按鈕後,微信客戶端將彈出選擇器供用戶選擇“拍照”或者“從手機相冊選擇”。用戶選擇後即走其他兩種流程。
7、pic_weixin:彈出微信相冊發圖器用戶點擊按鈕後,微信客戶端將調起微信相冊,完成選擇操作後,將選擇的相片發送給開發者的服務器,並推送事件給開發者,同時收起相冊,隨後可能會收到開發者下發的消息。
8、location_select:彈出地理位置選擇器用戶點擊按鈕後,微信客戶端將調起地理位置選擇工具,完成選擇操作後,將選擇的地理位置發送給開發者的服務器,同時收起位置選擇工具,隨後可能會收到開發者下發的消息。
9、media_id:下發消息(除文本消息)用戶點擊media_id類型按鈕後,微信服務器會將開發者填寫的永久素材id對應的素材下發給用戶,永久素材類型可以是圖片、音頻、視頻、圖文消息。請注意:永久素材id必須是在“素材管理/新增永久素材”接口上傳後獲得的合法id。
10、view_limited:跳轉圖文消息URL用戶點擊view_limited類型按鈕後,微信客戶端將打開開發者在按鈕中填寫的永久素材id對應的圖文消息URL,永久素材類型只支持圖文消息。請注意:永久素材id必須是在“素材管理/新增永久素材”接口上傳後獲得的合法id。

請注意,3到8的所有事件,僅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用戶,舊版本微信用戶點擊後將沒有迴應,開發者也不能正常接收到事件推送。9和10,是專門給第三方平臺旗下未微信認證(具體而言,是資質認證未通過)的訂閱號準備的事件類型,它們是沒有事件推送的,能力相對受限,其他類型的公衆號不必使用。

接口調用請求說明

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":"view",

               "name":"視頻",

               "url":"http://v.qq.com/"

            },

            {

               "type":"click",

               "name":"贊一下我們",

               "key":"V1001_GOOD"

            }]

       }]

 }

其他新增按鈕類型的請求示例

{

    "button": [

        {

            "name": "掃碼", 

            "sub_button": [

                {

                    "type": "scancode_waitmsg", 

                    "name": "掃碼帶提示", 

                    "key": "rselfmenu_0_0", 

                    "sub_button": [ ]

                }, 

                {

                    "type": "scancode_push", 

                    "name": "掃碼推事件", 

                    "key": "rselfmenu_0_1", 

                    "sub_button": [ ]

                }

            ]

        }, 

        {

            "name": "發圖", 

            "sub_button": [

                {

                    "type": "pic_sysphoto", 

                    "name": "系統拍照發圖", 

                    "key": "rselfmenu_1_0", 

                   "sub_button": [ ]

                 }, 

                {

                    "type": "pic_photo_or_album", 

                    "name": "拍照或者相冊發圖", 

                    "key": "rselfmenu_1_1", 

                    "sub_button": [ ]

                }, 

                {

                    "type": "pic_weixin", 

                    "name": "微信相冊發圖", 

                    "key": "rselfmenu_1_2", 

                    "sub_button": [ ]

                }

            ]

        }, 

        {

            "name": "發送位置", 

            "type": "location_select", 

            "key": "rselfmenu_2_0"

        },

        {

           "type": "media_id", 

           "name": "圖片", 

           "media_id": "MEDIA_ID1"

        }, 

        {

           "type": "view_limited", 

           "name": "圖文消息", 

           "media_id": "MEDIA_ID2"

        }

    ]

}

參數說明

參數 是否必須 說明

button 一級菜單數組,個數應爲1~3個

sub_button 二級菜單數組,個數應爲1~5個

type 菜單的響應動作類型

name 菜單標題,不超過16個字節,子菜單不超過40個字節

key click等點擊類型必須 菜單KEY值,用於消息接口推送,不超過128字節

url view類型必須 網頁鏈接,用戶點擊菜單可打開鏈接,不超過1024字節

media_id media_id類型和view_limited類型必須 調用新增永久素材接口返回的合法media_id


返回結果

正確時的返回JSON數據包如下:

{"errcode":0,"errmsg":"ok"}

錯誤時的返回JSON數據包如下(示例爲無效菜單名長度):

{"errcode":40018,"errmsg":"invalid button name size"}



function createMenu(){
	$token = $this->gettoken();
	echo $token;
	$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=$token
";
	$post = '{
     "button":[
     {	
          "type":"click",
          "name":"今日歌曲",
          "key":"V1001_TODAY_MUSIC"
      },
      {
           "name":"菜單",
           "sub_button":[
           {	
               "type":"view",
               "name":"搜索",
               "url":"http://www.soso.com/"
            },
            {
               "type":"view",
               "name":"視頻",
               "url":"http://v.qq.com/"
            },
            {
               "type":"click",
               "name":"贊一下我們",
               "key":"V1001_GOOD"
            }]
       }]
 }
	';
	$res = $this->curl_post($url,$post);
	var_dump($res);
	  
	}

	function curl_post($url,$data){
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
	if(!empty($data)) {
		curl_setopt($curl, CURLOPT_POST, 1);
		curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
	}
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$res = curl_exec($curl);
	curl_close($curl);
	return $res;
	}


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章