亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 微信小程序 微信開發(fā) asp.net開發(fā)微信公眾平臺(8)微信9大高級接口,自定義菜單

asp.net開發(fā)微信公眾平臺(8)微信9大高級接口,自定義菜單

Feb 23, 2017 pm 02:30 PM

前7篇把最基礎(chǔ)的消息接收和回復(fù)全做完了, ?也把高級接口的入口和分拆處理寫好了空方法, ?此篇接著介紹微信的9大高級接口, 并著重講解其中的自定義菜單。

微信9大接口為:

1.語音識別接口

2.客服接口

3.OAuth2.0 網(wǎng)頁授權(quán)接口

4.生成帶參數(shù)的二維碼接口

5.獲取用戶地理位置接口

6.獲取用戶基本信息接口

7.獲取關(guān)注者列表接口

8.用戶分組接口

9.上傳下載多媒體文件接口

?

具體介紹:

1. 語音識別?

功能描述:通過語音識別接口,用戶發(fā)送的語音,將同時給出語音識別出的文本內(nèi)容。?

實用意義:第三方可以調(diào)用微信自主研發(fā)的語音識別技術(shù)。意味著微信向第三方開放語音識別技術(shù),直接調(diào)用語音識別接口,對語音識別結(jié)果進(jìn)行互動或根據(jù)識別的內(nèi)容進(jìn)行自動答復(fù)。

?

2. 客服接口

功能描述:通過客服接口,公眾號可以在用戶發(fā)送過消息的 12 小時內(nèi),向用戶回復(fù)消息。?

實用意義:以前公眾帳號跟訂戶只能被動響應(yīng),比如用戶觸發(fā)了需求,如發(fā)送關(guān)鍵字給公眾帳號,后者才可以與用戶對話。如今,如果訂戶跟公眾帳號對話過一次,公眾帳號就可以在 12 個小時內(nèi)持續(xù)給用戶下發(fā)消息。這提高了公眾帳號發(fā)送消息的能力。

?

3. OAuth 2.0 網(wǎng)頁授權(quán)?

功能描述:通過網(wǎng)頁授權(quán)接口,公眾號可以請求用戶授權(quán)。

實用意義:這就像微博、QQ的帳號授權(quán)功能。這意味著微信帳號正式成為一個帳號系統(tǒng)。

?

4. 生成帶參數(shù)二維碼?

功能描述:通過該接口,公眾號可以獲得一系列攜帶不同參數(shù)的二維碼,在用戶掃描關(guān)注公眾號后,公眾號可以根據(jù)參數(shù)分析各二維碼的效果。?

實用意義:舉例來說,以前放一個二維碼在網(wǎng)站或者線下的廣告牌,效果都是一樣的:獲得關(guān)注用戶?,F(xiàn)在可以分析訂戶來自哪里。開發(fā)者可以在鏈接里設(shè)置特殊信息,做更多的數(shù)據(jù)分析。這一功能也可以用來做帳號綁定,

?

5. 獲取用戶地理位置

功能描述:通過該接口,公眾號能夠獲得用戶進(jìn)入公眾號會話時的地理位置。?

實用意義:兩種情況可以獲得用戶地理位置:一是與公眾帳號“會話時”,二是在會話界面“每隔 5 秒”。在用戶同意下,這就可以做微信導(dǎo)航或地理圍欄方面的服務(wù)。

?

6. 獲取用戶基本信息?

功能描述:通過該接口,公眾號可以根據(jù)加密后的用戶 OpenID,獲取用戶基礎(chǔ)信息,包括頭像、名稱、性別、地區(qū)。

?

實用意義:以前這是一個非常高的權(quán)限。獲得用戶基本信息后,可以做 CRM 管理后臺,方便商家管理用戶。

?

7. 獲取關(guān)注者列表?

功能描述:通過該接口,用戶可以獲取所有關(guān)注者的 OpenID?

實用意義:以前不能知道有多少人關(guān)注你,是誰在關(guān)注你。如今你可以知道誰在關(guān)注你。

?

8. 用戶分組接口?

功能描述:通過分組接口,公眾號可以在后臺為用戶移動分組,或創(chuàng)建、修改分組。

實用意義:可以對用戶進(jìn)行分組,比如樂思享組織一場“聽眾交流會”,現(xiàn)場來了 1000 人,可以把它歸為一組,后續(xù)的活動花絮照片只發(fā)給這 1000 人。這對于商家來說,就是一個 VIP 會員管理,是 CRM 管理平臺。

?

9. 上傳下載多媒體文件?

功能描述:通過該接口公眾號可以在需要時在微信服務(wù)器上傳下載多媒體文件。

實用意義:可以下發(fā)圖片、視頻。比如搞笑視頻,上傳到微信公眾賬號后臺,可以向聽眾推送出來,相當(dāng)于視頻網(wǎng)站的一個業(yè)務(wù)。

以上就是微信9大高級接口的介紹, ? 其實現(xiàn)在應(yīng)該是10個了,還有1個支付功能。

?

下面著重寫自定義菜單。

自定義菜單只需要創(chuàng)建一次,之后都會存在,每次更改需要等待幾分鐘才可看到,創(chuàng)建:

asp.net開發(fā)微信公眾平臺(8)微信9大高級接口,自定義菜單

創(chuàng)建好之后:

asp.net開發(fā)微信公眾平臺(8)微信9大高級接口,自定義菜單

??

我這里是全部添加好之后,點擊創(chuàng)建到微信,代碼:

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級菜單內(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級菜單組裝
                    dic2m.Add("name", row.Name);
                    dic2m.Add("sub_button", JsonHelper.ListDicToJsonVals(list2));
                    //------
                    list.Add(dic2m);
                }
                else
                {
                    //1級菜單
                    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級和2級裝成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)換出來的  [{},{}]也會被“”包圍,要去掉“”

            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數(shù)據(jù)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é)果:

asp.net開發(fā)微信公眾平臺(8)微信9大高級接口,自定義菜單

以上是屬于后臺管理中的創(chuàng)建菜單, 創(chuàng)建之后我們公號服務(wù)入口處對應(yīng)的方法也完善下, 之前已經(jīng)寫好了一個空方法

public void DoMenuClick(DbContext dbHome, RMenuClick mMenuClk)
{

}

現(xià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)鍵字開始體驗";
            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));
        }

這個是點擊類型的菜單處理, ?需要說明的是,view類型的菜單點擊就會直接跳轉(zhuǎn)你所寫的鏈接去, ?1級菜單如果設(shè)置成view類型則不會跳轉(zhuǎn)依舊執(zhí)行點擊事件;

效果:

?

asp.net開發(fā)微信公眾平臺(8)微信9大高級接口,自定義菜單

我這里直接返回了一段文字, 實際應(yīng)用中可以返回任何消息。

更多asp.net開發(fā)微信公眾平臺(8)微信9大高級接口,自定義菜單相關(guān)文章請關(guān)注PHP中文網(wǎng)!

?

?

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72