国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Senparc.Weixin.MP 微信公眾平臺開發(fā)教程(2)自定義菜單

2019-11-08 03:22:09
字體:
供稿:網(wǎng)友

自定義菜單

Senparc.Weixin SDK 是由盛派網(wǎng)絡(luò)(Senparc)團(tuán)隊(duì)自主研發(fā)的針對微信各模塊的開發(fā)套件(C# SDK)。 自定義菜單開發(fā)時(shí),需要使用到Token, 關(guān)于Token獲取 微信是有限制的。 所以SDK里面對Token進(jìn)行了緩存的。為了方便開發(fā),我們可以在全局里面注冊: accessTokenContainer.Register(“AppID”,”AppSecret”);

參數(shù)說明

參數(shù) 是否必須 說明 button 是 一級菜單數(shù)組,個(gè)數(shù)應(yīng)為1~3個(gè) sub_button 否 二級菜單數(shù)組,個(gè)數(shù)應(yīng)為1~5個(gè) type 是 菜單的響應(yīng)動(dòng)作類型 name 是 菜單標(biāo)題,不超過16個(gè)字節(jié),子菜單不超過40個(gè)字節(jié) key click等點(diǎn)擊類型必須 菜單KEY值,用于消息接口推送,不超過128字節(jié) url view類型必須 網(wǎng)頁鏈接,用戶點(diǎn)擊菜單可打開鏈接,不超過1024字節(jié) media_id media_id類型和view_limited類型必須 調(diào)用新增永久素材接口返回的合法media_id matchrule 是 菜單匹配規(guī)則 group_id 否 用戶分組id,可通過用戶分組管理接口獲取 sex 否 性別:男(1)女(2),不填則不做匹配 client_platform_type 否 客戶端版本,當(dāng)前只具體到系統(tǒng)型號:IOS(1), Android(2),Others(3),不填則不做匹配 country 否 國家信息,是用戶在微信中設(shè)置的地區(qū),具體請參考地區(qū)信息表 PRovince 否 省份信息,是用戶在微信中設(shè)置的地區(qū),具體請參考地區(qū)信息表 city 否 城市信息,是用戶在微信中設(shè)置的地區(qū),具體請參考地區(qū)信息表 language 否 語言信息,是用戶在微信中設(shè)置的語言,具體請參考語言表: 1、簡體中文 “zh_CN” 2、繁體中文TW “zh_TW” 3、繁體中文HK “zh_HK” 4、英文 “en” 5、印尼 “id” 6、馬來 “ms” 7、西班牙 “es” 8、韓國 “ko” 9、意大利 “it” 10、日本 “ja” 11、波蘭 “pl” 12、葡萄牙 “pt” 13、俄國 “ru” 14、泰文 “th” 15、越南 “vi” 16、阿拉伯語 “ar” 17、北印度 “hi” 18、希伯來 “he” 19、土耳其 “tr” 20、德語 “de” 21、法語 “fr”

matchrule共六個(gè)字段,均可為空,但不能全部為空,至少要有一個(gè)匹配信息是不為空的。 country、province、city組成地區(qū)信息,將按照country、province、city的順序進(jìn)行驗(yàn)證,要符合地區(qū)信息表的內(nèi)容。地區(qū)信息從大到小驗(yàn)證,小的可以不填,即若填寫了省份信息,則國家信息也必填并且匹配,城市信息可以不填。 例如 “中國 廣東省 廣州市”、“中國 廣東省”都是合法的地域信息,而“中國 廣州市”則不合法,因?yàn)樘顚懥顺鞘行畔⒌珱]有填寫省份信息。 地區(qū)信息表請點(diǎn)擊下載。

獲取菜單

var result = CommonApi.GetMenu("appID");

添加菜單

public ActionResult Create() { ButtonGroup bg = new ButtonGroup(); //只存在一級菜單 bg.button.Add(new SingleViewButton() { name = "一個(gè)平臺", url = "url" }); //存在二級菜單 var subButton = new SubButton() { name = "服務(wù)中心", }; subButton.sub_button.Add(new SingleViewButton() { url = "url", name = "服務(wù)1" }); subButton.sub_button.Add(new SingleViewButton() { url = "url", name = "服務(wù)2", }); subButton.sub_button.Add(new SingleViewButton() { url = "url", name = "服務(wù)3", }); bg.button.Add(subButton); //存在二級菜單 var three = new SubButton() { name = "其他", }; three.sub_button.Add(new SingleViewButton() { url = "url", name = "綁定會員" }); //事件按扭 three.sub_button.Add(new SingleClickButton() { key= "SubClickRoot_News", //觸發(fā)自動(dòng)回復(fù)里面的事件 name = "關(guān)于平臺", type= "click" //默認(rèn)click事件 }); bg.button.Add(three); var results = CommonApi.CreateMenu("appid", bg); return View("Index"); }

刪除菜單

CommonApi.DeleteMenu("AppID");

個(gè)性化菜單

官方說明

開發(fā)者可以通過以下條件來設(shè)置用戶看到的菜單:

1、用戶分組(開發(fā)者的業(yè)務(wù)需求可以借助用戶分組來完成) 2、性別 3、手機(jī)操作系統(tǒng) 4、地區(qū)(用戶在微信客戶端設(shè)置的地區(qū)) 5、語言(用戶在微信客戶端設(shè)置的語言) 個(gè)性化菜單接口說明:

1、個(gè)性化菜單要求用戶的微信客戶端版本在iphone6.2.2,Android 6.2.4以上。 2、菜單的刷新策略是,在用戶進(jìn)入公眾號會話頁或公眾號profile頁時(shí),如果發(fā)現(xiàn)上一次拉取菜單的請求在5分鐘以前,就會拉取一下菜單,如果菜單有更新,就會刷新客戶端的菜單。測試時(shí)可以嘗試取消關(guān)注公眾賬號后再次關(guān)注,則可以看到創(chuàng)建后的效果。 3、普通公眾號的個(gè)性化菜單的新增接口每日限制次數(shù)為2000次,刪除接口也是2000次,測試個(gè)性化菜單匹配結(jié)果接口為20000次 4、出于安全考慮,一個(gè)公眾號的所有個(gè)性化菜單,最多只能設(shè)置為跳轉(zhuǎn)到3個(gè)域名下的鏈接 5、創(chuàng)建個(gè)性化菜單之前必須先創(chuàng)建默認(rèn)菜單(默認(rèn)菜單是指使用普通自定義菜單創(chuàng)建接口創(chuàng)建的菜單)。如果刪除默認(rèn)菜單,個(gè)性化菜單也會全部刪除 個(gè)性化菜單匹配規(guī)則說明:

當(dāng)公眾號創(chuàng)建多個(gè)個(gè)性化菜單時(shí),將按照發(fā)布順序,由新到舊逐一匹配,直到用戶信息與matchrule相符合。如果全部個(gè)性化菜單都沒有匹配成功,則返回默認(rèn)菜單。 例如公眾號先后發(fā)布了默認(rèn)菜單,個(gè)性化菜單1,個(gè)性化菜單2,個(gè)性化菜單3。那么當(dāng)用戶進(jìn)入公眾號頁面時(shí),將從個(gè)性化菜單3開始匹配,如果個(gè)性化菜單3匹配成功,則直接返回個(gè)性化菜單3,否則繼續(xù)嘗試匹配個(gè)性化菜單2,直到成功匹配到一個(gè)菜單。 根據(jù)上述匹配規(guī)則,為了避免菜單生效時(shí)間的混淆,決定不予提供個(gè)性化菜單編輯API,開發(fā)者需要更新菜單時(shí),需將完整配置重新發(fā)布一輪。

添加個(gè)性菜單

public JsonResult Add() { GetMenuResultFull resultFull = new GetMenuResultFull(); MenuMatchRule menuMatchRule = new MenuMatchRule(); menuMatchRule.country = "中國"; menuMatchRule.province = "廣州"; List<MenuFull_RootButton> bg = new List<MenuFull_RootButton>(); bg.Add(new MenuFull_RootButton() { name = "一級", url = "http://www.baidu.com", type= "VIEW" }); List<MenuFull_ConditionalButtonGroup> gexi = new List<MenuFull_ConditionalButtonGroup>(); gexi.Add(new MenuFull_ConditionalButtonGroup() { button = bg, matchrule = menuMatchRule }); resultFull.menu = new MenuFull_ButtonGroup() { button=bg}; resultFull.conditionalmenu = gexi; var useAddCondidionalApi =true; var apiName = string.Format("使用接口:{0}。", (useAddCondidionalApi ? "個(gè)性化菜單接口" : "普通自定義菜單接口")); try { //重新整理按鈕信息 WxJsonResult result = null; IButtonGroupBase buttonGroup = null; if (useAddCondidionalApi) { LogHelper.WriteLog(null, "進(jìn)入個(gè)性化菜單2"); //個(gè)性化接口 buttonGroup = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetMenuFromJsonResult(resultFull, new ConditionalButtonGroup()).menu; var addConditionalButtonGroup = buttonGroup as ConditionalButtonGroup; addConditionalButtonGroup.matchrule = menuMatchRule; result = Senparc.Weixin.MP.CommonAPIs.CommonApi.CreateMenuConditional("wx64a07fabd01d0a43", addConditionalButtonGroup); apiName += string.Format("menuid:{0}。", (result as CreateMenuConditionalResult).menuid); } else { //普通接口 buttonGroup = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetMenuFromJsonResult(resultFull, new ButtonGroup()).menu; result = Senparc.Weixin.MP.CommonAPIs.CommonApi.CreateMenu("wx64a07fabd01d0a43", buttonGroup); } var json = new { Success = result.errmsg == "ok", Message = "菜單更新成功。" + apiName }; return Json(json); } catch (Exception ex) { var json = new { Success = false, Message = string.Format("更新失敗:{0}。{1}", ex.Message, apiName) }; return Json(json); } }
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 绥滨县| 科技| 太和县| 巴南区| 平舆县| 来安县| 闽清县| 柳林县| 江孜县| 利辛县| 桑植县| 永仁县| 永仁县| 巨野县| 铜鼓县| 铜鼓县| 南皮县| 蕉岭县| 玛纳斯县| 沐川县| 明溪县| 凤翔县| 孟津县| 伽师县| 义马市| 千阳县| 英吉沙县| 邳州市| 彝良县| 托克逊县| 新邵县| 雷波县| 新营市| 伊宁县| 香港 | 申扎县| 仙居县| 建湖县| 罗平县| 明溪县| 紫阳县|