前7篇把最基礎(chǔ)的消息接收和回復(fù)全做完了, ?也把高級(jí)接口的入口和分拆處理寫好了空方法, ?此篇接著介紹微信的9大高級(jí)接口, 並著重講解其中的自訂選單。
微信9大介面為:
1.語音辨識(shí)介面
#2.客服介面
3.OAuth2.0 網(wǎng)頁授權(quán)介面
4.產(chǎn)生帶有參數(shù)的二維碼介面
5.取得用戶地理位置介面
6.取得使用者基本資訊介面
#7.取得追蹤者清單介面
#8.使用者分組介面
9.上傳下載多媒體檔案介面
#?
##具體介紹:
1. 語音辨識(shí)?功能描述:透過語音辨識(shí)接口,使用者傳送的語音,將同時(shí)給予語音辨識(shí)的文字內(nèi)容。?實(shí)用意義:第三者可以呼叫微信自主研發(fā)的語音辨識(shí)技術(shù)。意味著微信向第三方開放語音識(shí)別技術(shù),直接調(diào)用語音識(shí)別接口,對(duì)語音識(shí)別結(jié)果進(jìn)行互動(dòng)或根據(jù)識(shí)別的內(nèi)容進(jìn)行自動(dòng)答復(fù)。 ?2. 客服介面功能描述:透過客服接口,公眾號(hào)可以在用戶發(fā)送過訊息的 12 小時(shí)內(nèi),回覆用戶訊息。?實(shí)用意義:以前公眾帳號(hào)跟訂戶只能被動(dòng)回應(yīng),例如用戶觸發(fā)了需求,例如發(fā)送關(guān)鍵字給公眾帳號(hào),後者才可以與用戶對(duì)話。如今,如果訂戶跟公眾帳號(hào)對(duì)話過一次,公用帳號(hào)就可以在 12 個(gè)小時(shí)內(nèi)持續(xù)傳送訊息給用戶。這提高了公眾帳號(hào)發(fā)送訊息的能力。 ?3. OAuth 2.0 網(wǎng)頁授權(quán)?功能說明:透過網(wǎng)頁授權(quán)接口,公眾號(hào)碼可以請(qǐng)求使用者授權(quán)。 實(shí)用意義:這就像是微博、QQ的帳號(hào)授權(quán)功能。這意味著微信帳號(hào)正式成為帳號(hào)系統(tǒng)。 ?4. 產(chǎn)生帶參數(shù)二維碼?功能描述:透過該接口,公眾號(hào)可以獲得一系列攜帶不同參數(shù)的二維碼,在用戶掃描關(guān)注公眾號(hào)後,公眾號(hào)可依參數(shù)分析各二維碼的效果。?實(shí)用意義:舉例來說,以前放一個(gè)二維碼在網(wǎng)站或離線的廣告牌,效果都是一樣的:獲得關(guān)注用戶。現(xiàn)在可以分析訂戶來自哪裡。開發(fā)者可以在連結(jié)裡設(shè)定特殊訊息,做更多的數(shù)據(jù)分析。這項(xiàng)功能也可以用來做帳號(hào)綁定,?5. 取得使用者地理位置功能描述:透過該介面,公有號(hào)能夠獲得使用者進(jìn)入大眾號(hào)會(huì)話時(shí)的地理位置。?實(shí)用意義:兩種情況可以獲得使用者地理位置:一是與公眾帳號(hào)“會(huì)話時(shí)”,二是在會(huì)話介面“每隔 5 秒”。在使用者同意下,這就可以做微信導(dǎo)航或地理圍籬方面的服務(wù)。 ?6. 取得使用者基本資訊?功能描述:透過此接口,公眾號(hào)可根據(jù)加密後的使用者OpenID,取得使用者基礎(chǔ)資訊,包括頭像、名稱、性別、地區(qū)。 ?實(shí)用意義:以前這是一個(gè)非常高的權(quán)限。取得使用者基本資料後,可以做 CRM 管理後臺(tái),方便商家管理使用者。 ?7. 取得追蹤者清單?功能描述:透過該接口,使用者可以取得所有追蹤者的OpenID?##實(shí)務(wù)意義:以前不能知道有多少人關(guān)注你,是誰在關(guān)注你。如今你可以知道誰在關(guān)注你。
?
8. 使用者分組介面?
功能描述:透過分組接口,公眾號(hào)可在後臺(tái)為使用者移動(dòng)分組,或建立、修改分組。
實(shí)用意義:可以將使用者分組,例如樂思享組織一場“聽眾交流會(huì)”,現(xiàn)場來了1000 人,可以把它歸為一組,後續(xù)的活動(dòng)花絮照片只發(fā)給這1000 人。這對(duì)商家來說,就是一個(gè) VIP 會(huì)員管理,就是 CRM 管理平臺(tái)。
?
9. 上傳下載多媒體檔案?
功能描述:透過此介面公眾號(hào)可在需要時(shí)在微信伺服器上傳下載多媒體檔案。
實(shí)用意義:可以下發(fā)圖片、影片。例如搞笑視頻,上傳到微信公眾帳號(hào)後臺(tái),可以向聽眾推送出來,相當(dāng)於視頻網(wǎng)站的一個(gè)業(yè)務(wù)。
以上就是微信9大高階介面的介紹, ? 其實(shí)現(xiàn)在應(yīng)該是10個(gè)了,還有1個(gè)支付功能。
?
下面著重寫自訂選單。
自訂選單只需要建立一次,之後都會(huì)存在,每次變更需要等待幾分鐘才可看到,建立:
已建立好之後:
??
我這裡是全部新增好之後,點(diǎn)選建立到微信,程式碼:
public void SetMenu() { dbHome=Factory.FContext.WeiXinDbContext(); var listP = DAL.ListWhere<tb_PersonalMenu, int>(dbHome, a => a.ParentId == 0&& a.State==1, a => a.ID, 3); List<Dictionary<string, object>> list = new List<Dictionary<string, object>>(); foreach (var row in listP) { var listC = DAL.ListWhere<tb_PersonalMenu, int>(dbHome, a => a.ParentId == row.ID && a.State==1, a => a.ID, 5); List<Dictionary<string, object>> list2 = new List<Dictionary<string, object>>(); Dictionary<string, object> dic2m = new Dictionary<string, object>(); Dictionary<string, object> dic1 = new Dictionary<string, object>(); if (listC.Count > 0) { foreach(var row2 in listC) { //2級(jí)菜單內(nèi)容 Dictionary<string, object> dic2c = new Dictionary<string, object>(); dic2c.Add("type", row2.Type.ToString().Replace("1", "click").Replace("2","view")); dic2c.Add("name", row2.Name); if(row2.Type==1) dic2c.Add("key", row2.ID); if (row2.Type ==2) dic2c.Add("url", row2.LinkUrl); list2.Add(dic2c); } //-- //2級(jí)菜單組裝 dic2m.Add("name", row.Name); dic2m.Add("sub_button", JsonHelper.ListDicToJsonVals(list2)); //------ list.Add(dic2m); } else { //1級(jí)菜單 dic1.Add("type", row.Type.ToString().Replace("1", "click").Replace("2", "view")); dic1.Add("name", row.Name); if (row.Type == 1) dic1.Add("key", row.ID); if (row.Type == 2) dic1.Add("url", row.LinkUrl); //---------- list.Add(dic1); } //1級(jí)和2級(jí)裝成list //----------- } string m=JsonHelper.ListDicToJsonVals(list);//將list轉(zhuǎn)成json的值 下面賦值給button //賦值給button Dictionary<string, object> dicAll = new Dictionary<string, object>(); dicAll.Add("button", m); //--------- string jsonResult = JsonHelper.GetJsonStr(dicAll);//將dic轉(zhuǎn)成json //轉(zhuǎn)換出來的 [{},{}]也會(huì)被“”包圍,要去掉“” jsonResult = jsonResult.Replace("\"[", "[").Replace("]\"", "]"); string html = HttpHelper.HttpPost("https"+"://api.weixin.qq.com/cgi-bin/menu/create?access_token="+Common.Config.SystemConfig.access_token+"", jsonResult, Encoding.UTF8); dbHome.Dispose(); Response.Write(JsonHelper.JsonToVal(html, "errmsg")); Response.End(); }
?
最終是如下格式的json資料post到微信:
{ "button":[ { "type":"click", "name":"今日歌曲", "key":"V1001_TODAY_MUSIC" }, { "type":"click", "name":"歌手簡介", "key":"V1001_TODAY_SINGER" }, { "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" }] }] }
這樣就可以在微信中看到結(jié)果:
?
?
#以上是屬於後臺(tái)管理中的建立選單, ?建立之後我們公號(hào)服務(wù)入口處對(duì)應(yīng)的方法也完善下, 之前已經(jīng)寫好了一個(gè)空方法
public void DoMenuClick(DbContext dbHome, RMenuClick mMenuClk)
? ? ? ?{
}
現(xiàn)在完善下:
//自定義菜單點(diǎn)擊 public void DoMenuClick(DbContext dbHome, RMenuClick mMenuClk) { SText mStxtA = new SText(); mStxtA.ToUserName = mMenuClk.FromUserName; mStxtA.FromUserName = mMenuClk.ToUserName; mStxtA.CreateTime = mMenuClk.CreateTime; int id = 0; mStxtA.Content = "歡迎使用,輸入任意關(guān)鍵字開始體驗(yàn)"; if(int.TryParse(mMenuClk.EventKey,out id)) { var me = DALWei.InfoEntities<tb_PersonalMenu>(dbHome, a => a.ID == id); if(me!=null) mStxtA.Content = "歡迎使用【"+me.Name+"】,介紹、說明、鏈接等等; 也可以是圖文消息"; } Often.ResponseToEnd(DALWei.SendText(mStxtA)); }
這個(gè)是點(diǎn)選類型的選單處理, ?需要說明的是,view類型的選單點(diǎn)擊就會(huì)直接跳轉(zhuǎn)你所寫的連結(jié)去, ?1級(jí)選單如果設(shè)定成view類型則不會(huì)跳轉(zhuǎn)依舊執(zhí)行點(diǎn)擊事件;
效果:
?
我這裡直接回傳了一段文字, 實(shí)際應(yīng)用中可以回傳任何訊息。
更多asp.net開發(fā)微信公眾平臺(tái)(8)微信9大高級(jí)接口,自訂選單相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!
?
?

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)