国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php教程 php手冊 《C#微信開發(fā)系列(2)-自定義菜單管理》

《C#微信開發(fā)系列(2)-自定義菜單管理》

Jul 06, 2016 pm 01:30 PM
自定義 菜單

2.0自定義菜單管理 ①接口說明: 微信服務(wù)號聊天窗口下面的菜單項(有的公眾號有啟用有的則沒有),這個可以在編輯模式簡單配置,也可以在開發(fā)模式代碼配置。微信公眾平臺開發(fā)者文檔:微信公眾號開發(fā)平臺創(chuàng)建自定義菜單,可以看到創(chuàng)建菜單的一些注意事項,下

2.0自定義菜單管理

?

①接口說明:

微信服務(wù)號聊天窗口下面的菜單項(有的公眾號有啟用有的則沒有),這個可以在編輯模式簡單配置,也可以在開發(fā)模式代碼配置。微信公眾平臺開發(fā)者文檔:微信公眾號開發(fā)平臺創(chuàng)建自定義菜單,可以看到創(chuàng)建菜單的一些注意事項,下面的使用網(wǎng)頁調(diào)試工具調(diào)試該接口,只是調(diào)試接口是否可以正常調(diào)用,并不是直接創(chuàng)建菜單,根據(jù)微信自定義菜單管理文檔菜單事件可分為兩種:

click:?用戶點擊click類型按鈕后,微信服務(wù)器會通過消息接口推送消息類型為event?的結(jié)構(gòu)給開發(fā)者(參考消息接口指南),并且?guī)习粹o中開發(fā)者填寫的key值,開發(fā)者可以通過自定義的key值與用戶進(jìn)行交互。

view:?用戶點擊view類型按鈕后,微信客戶端將會打開開發(fā)者在按鈕中填寫的url值?(即網(wǎng)頁鏈接),達(dá)到打開網(wǎng)頁的目的,建議與網(wǎng)頁授權(quán)獲取用戶基本信息接口結(jié)合,獲得用戶的登入個人信息。

設(shè)置菜單JSON格式(可根據(jù)需要進(jìn)行修改):

<span style="color: #000000;">{
     </span><span style="color: #800000;">"</span><span style="color: #800000;">button</span><span style="color: #800000;">"</span><span style="color: #000000;">:[
     {    
          </span><span style="color: #800000;">"</span><span style="color: #800000;">type</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">click</span><span style="color: #800000;">"</span><span style="color: #000000;">,
          </span><span style="color: #800000;">"</span><span style="color: #800000;">name</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">今日歌曲</span><span style="color: #800000;">"</span><span style="color: #000000;">,
          </span><span style="color: #800000;">"</span><span style="color: #800000;">key</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">V1001_TODAY_MUSIC</span><span style="color: #800000;">"</span><span style="color: #000000;">
      },
      {
           </span><span style="color: #800000;">"</span><span style="color: #800000;">name</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">菜單</span><span style="color: #800000;">"</span><span style="color: #000000;">,
           </span><span style="color: #800000;">"</span><span style="color: #800000;">sub_button</span><span style="color: #800000;">"</span><span style="color: #000000;">:[
           {    
               </span><span style="color: #800000;">"</span><span style="color: #800000;">type</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">view</span><span style="color: #800000;">"</span><span style="color: #000000;">,
               </span><span style="color: #800000;">"</span><span style="color: #800000;">name</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">搜索</span><span style="color: #800000;">"</span><span style="color: #000000;">,
               </span><span style="color: #800000;">"</span><span style="color: #800000;">url</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">http://www.soso.com/</span><span style="color: #800000;">"</span><span style="color: #000000;">
            },
            {
               </span><span style="color: #800000;">"</span><span style="color: #800000;">type</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">view</span><span style="color: #800000;">"</span><span style="color: #000000;">,
               </span><span style="color: #800000;">"</span><span style="color: #800000;">name</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">視頻</span><span style="color: #800000;">"</span><span style="color: #000000;">,
               </span><span style="color: #800000;">"</span><span style="color: #800000;">url</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">http://v.QQ.com/</span><span style="color: #800000;">"</span><span style="color: #000000;">
            },
            {
               </span><span style="color: #800000;">"</span><span style="color: #800000;">type</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">click</span><span style="color: #800000;">"</span><span style="color: #000000;">,
               </span><span style="color: #800000;">"</span><span style="color: #800000;">name</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">贊一下我們</span><span style="color: #800000;">"</span><span style="color: #000000;">,
               </span><span style="color: #800000;">"</span><span style="color: #800000;">key</span><span style="color: #800000;">"</span>:<span style="color: #800000;">"</span><span style="color: #800000;">V1001_GOOD</span><span style="color: #800000;">"</span><span style="color: #000000;">
            }]
       }]
 }</span>

配置菜單的注意點:

1、自定義菜單最多包括3個一級菜單,每個一級菜單最多包含5個二級菜單。

2、一級菜單最多4個漢字,二級菜單最多7個漢字,多出來的部分將會以“...”代替。

3、創(chuàng)建自定義菜單后,由于微信客戶端緩存,需要24小時微信客戶端才會展現(xiàn)出來。測試時可以嘗試取消關(guān)注公眾賬號后再次關(guān)注,則可以看到創(chuàng)建后的效果。

?接口參數(shù)配置:

?

②請求接口:

?

接口調(diào)用請求說明:

http請求方式:POST(請使用https協(xié)議)

https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

?

POST請求接口調(diào)用接口憑據(jù)ACCESS_TOKEN的獲取方式可參見文檔(獲取ACCESS_TOKEN文檔)使用POST方式帶上ACCESS_TOKEN以及菜單JSON請求接口,具體實現(xiàn)代碼如下:

?

<span style="color: #008080;"> 1</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></summary></span>
<span style="color: #008080;"> 2</span> <span style="color: #808080;">///</span><span style="color: #008000;"> 創(chuàng)建菜單事件
</span><span style="color: #008080;"> 3</span> <span style="color: #808080;">///</span> <span style="color: #808080;"></span>
<span style="color: #008080;"> 4</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="sender"></span>
<span style="color: #008080;"> 5</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="e"></span>
<span style="color: #008080;"> 6</span> <span style="color: #0000ff;">PRotected</span> <span style="color: #0000ff;">void</span> creayeMenu_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e)
</span><span style="color: #008080;"> 7</span> <span style="color: #000000;">{
</span><span style="color: #008080;"> 8    </span>FileStream fs1 = <span style="color: #0000ff;">new</span> FileStream(Server.MapPath(<span style="color: #800000;">"</span><span style="color: #800000;">~/</span><span style="color: #800000;">"</span>) + <span style="color: #800000;">"</span><span style="color: #800000;">\\menuInfo.txt</span><span style="color: #800000;">"</span><span style="color: #000000;">, FileMode.Open);
</span><span style="color: #008080;"> 9    </span>StreamReader sr = <span style="color: #0000ff;">new</span> StreamReader(fs1, Encoding.GetEncoding(<span style="color: #800000;">"</span><span style="color: #800000;">GBK</span><span style="color: #800000;">"</span><span style="color: #000000;">));
</span><span style="color: #008080;">10    </span><span style="color: #0000ff;">string</span> menu =<span style="color: #000000;"> sr.ReadToEnd();
</span><span style="color: #008080;">11    </span><span style="color: #000000;">sr.Close();
</span><span style="color: #008080;">12    </span><span style="color: #000000;">fs1.Close();
</span><span style="color: #008080;">13    <span style="color: #000000;">CreateMenu</span></span>(<span style="color: #800000;">"</span><span style="color: #800000;">https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN</span><span style="color: #800000;">"</span><span style="color: #000000;">, menu);
</span><span style="color: #008080;">14</span> }

?

<span style="color: #008080;"> 1</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></summary></span>
<span style="color: #008080;"> 2</span> <span style="color: #808080;">///</span><span style="color: #008000;"> 創(chuàng)建公眾號菜單
</span><span style="color: #008080;"> 3</span> <span style="color: #808080;">///</span> <span style="color: #808080;"></span>
<span style="color: #008080;"> 4</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="posturl"></span><span style="color: #008000;">URL</span><span style="color: #808080;"></span>
<span style="color: #008080;"> 5</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="postData"></span><span style="color: #008000;">菜單JSON數(shù)據(jù)</span><span style="color: #808080;"></span>
<span style="color: #008080;"> 6</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><returns></returns></span>
<span style="color: #008080;"> 7</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> CreateMenu(<span style="color: #0000ff;">string</span> posturl, <span style="color: #0000ff;">string</span><span style="color: #000000;"> postData)
</span><span style="color: #008080;"> 8</span> <span style="color: #000000;">{
</span><span style="color: #008080;"> 9    </span>Stream outstream = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;">10    </span>Stream instream = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;">11    </span>StreamReader sr = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;">12    </span>HttpWebResponse response = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;">13    </span>HttpWebRequest request = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;">14    </span>Encoding encoding =<span style="color: #000000;"> Encoding.UTF8;
</span><span style="color: #008080;">15    </span><span style="color: #0000ff;">byte</span>[] data =<span style="color: #000000;"> encoding.GetBytes(postData);
</span><span style="color: #008080;">16</span> 
<span style="color: #008080;">17    </span>request = WebRequest.Create(posturl) <span style="color: #0000ff;">as</span><span style="color: #000000;"> HttpWebRequest;
</span><span style="color: #008080;">18    </span>CookieContainer cookieContainer = <span style="color: #0000ff;">new</span><span style="color: #000000;"> CookieContainer();
</span><span style="color: #008080;">19    </span>request.CookieContainer =<span style="color: #000000;"> cookieContainer;
</span><span style="color: #008080;">20</span>       request.AllowAutoRedirect = <span style="color: #0000ff;">true</span><span style="color: #000000;">;
</span><span style="color: #008080;">21</span>       request.Method = <span style="color: #800000;">"</span><span style="color: #800000;">POST</span><span style="color: #800000;">"</span><span style="color: #000000;">;
</span><span style="color: #008080;">22</span>       request.ContentType = <span style="color: #800000;">"</span><span style="color: #800000;">application/x-www-form-urlencoded</span><span style="color: #800000;">"</span><span style="color: #000000;">;
</span><span style="color: #008080;">23</span>       request.ContentLength =<span style="color: #000000;"> data.Length;
</span><span style="color: #008080;">24</span>       outstream =<span style="color: #000000;"> request.GetRequestStream();
</span><span style="color: #008080;">25</span>       outstream.Write(data, <span style="color: #800080;">0</span><span style="color: #000000;">, data.Length);
</span><span style="color: #008080;">26</span> <span style="color: #000000;">      outstream.Close();
</span><span style="color: #008080;">27</span>       response = request.GetResponse() <span style="color: #0000ff;">as</span><span style="color: #000000;"> HttpWebResponse;
</span><span style="color: #008080;">28</span>       instream =<span style="color: #000000;"> response.GetResponseStream();
</span><span style="color: #008080;">29</span>       sr = <span style="color: #0000ff;">new</span><span style="color: #000000;"> StreamReader(instream, encoding);
</span><span style="color: #008080;">30</span>       <span style="color: #0000ff;">string</span> content =<span style="color: #000000;"> sr.ReadToEnd();
</span><span style="color: #008080;">31</span> <span style="color: #000000;">      Context.Response.Write(content);
</span><span style="color: #008080;">32</span> }

接口返回結(jié)果:

正確時返回的JSON數(shù)據(jù)包格式如下:

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

?

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

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

?


本站聲明
本文內(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脫衣機(jī)

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
Windows 11: 導(dǎo)入和導(dǎo)出開始布局的簡便方法 Windows 11: 導(dǎo)入和導(dǎo)出開始布局的簡便方法 Aug 22, 2023 am 10:13 AM

在Windows11中,“開始”菜單經(jīng)過重新設(shè)計,并具有一組簡化的應(yīng)用,這些應(yīng)用排列在頁面網(wǎng)格中,這與它的前身不同,后者在“開始”菜單上有文件夾、應(yīng)用和組。您可以自定義“開始”菜單布局,并將其導(dǎo)入并導(dǎo)出到其他Windows設(shè)備,以根據(jù)您的喜好對其進(jìn)行個性化設(shè)置。在本指南中,我們將討論在Windows11上導(dǎo)入開始布局以自定義默認(rèn)布局的分步說明。什么是Windows11中的Import-StartLayout?導(dǎo)入開始布局是Windows10和更早版本中使用的cmdlet,用于將“開始”菜單的自定

如何在Netflix中快速設(shè)置自定義頭像 如何在Netflix中快速設(shè)置自定義頭像 Feb 19, 2024 pm 06:33 PM

Netflix上的頭像是你流媒體身份的可視化代表。用戶可以超越默認(rèn)的頭像來展示自己的個性。繼續(xù)閱讀這篇文章,了解如何在Netflix應(yīng)用程序中設(shè)置自定義個人資料圖片。如何在Netflix中快速設(shè)置自定義頭像在Netflix中,沒有內(nèi)置功能來設(shè)置個人資料圖片。不過,您可以通過在瀏覽器上安裝Netflix擴(kuò)展來實現(xiàn)此目的。首先,在瀏覽器上安裝Netflix擴(kuò)展的自定義個人資料圖片。你可以在Chrome商店買到它。安裝擴(kuò)展后,在瀏覽器上打開Netflix并登錄您的帳戶。導(dǎo)航至右上角的個人資料,然后單擊

如何在Python中創(chuàng)建和自定義Venn圖? 如何在Python中創(chuàng)建和自定義Venn圖? Sep 14, 2023 pm 02:37 PM

維恩圖是用來表示集合之間關(guān)系的圖。要創(chuàng)建維恩圖,我們將使用matplotlib。Matplotlib是一個在Python中常用的數(shù)據(jù)可視化庫,用于創(chuàng)建交互式的圖表和圖形。它也用于制作交互式的圖像和圖表。Matplotlib提供了許多函數(shù)來自定義圖表和圖形。在本教程中,我們將舉例說明三個示例來自定義Venn圖。Example的中文翻譯為:示例這是一個創(chuàng)建兩個維恩圖交集的簡單示例;首先,我們導(dǎo)入了必要的庫并導(dǎo)入了venns。然后我們將數(shù)據(jù)集創(chuàng)建為Python集,之后,我們使用“venn2()”函數(shù)創(chuàng)

如何在Windows 11的右鍵單擊菜單中默認(rèn)“顯示更多選項” 如何在Windows 11的右鍵單擊菜單中默認(rèn)“顯示更多選項” Jul 10, 2023 pm 12:33 PM

我們用戶從來不想要的最煩人的更改之一是在右鍵單擊上下文菜單中包含“顯示更多選項”。但是,您可以刪除它并取回Windows11中的經(jīng)典上下文菜單。不再需要多次單擊并在上下文菜單中查找這些ZIP快捷方式。按照本指南返回Windows11上成熟的右鍵單擊上下文菜單。修復(fù)1–手動調(diào)整CLSID這是我們列表中唯一的手動方法。您將在注冊表編輯器中調(diào)整特定鍵或值以解決此問題。注意–像這樣的注冊表編輯非常安全,并且可以正常工作。因此,在系統(tǒng)上嘗試此操作之前,您應(yīng)該創(chuàng)建注冊表備份。步驟1–嘗試

Win11如何自定義背景圖片 Win11如何自定義背景圖片 Jun 30, 2023 pm 08:45 PM

Win11如何自定義背景圖片?在最新發(fā)布的win11系統(tǒng)中,里面有許多的自定義功能,但是很多小伙伴不知道應(yīng)該如何使用這些功能。就有小伙伴覺得背景圖片比較單調(diào),想要自定義背景圖,但是不知道如何操作自定義背景圖,如果你不知道如何定義背景圖片,小編下面整理了Win11自定義背景圖片步驟,感興趣的話一起往下看看把!Win11自定義背景圖片步驟1、點擊桌面win按鈕,在彈出的菜單中點擊設(shè)置,如圖所示。2、進(jìn)入設(shè)置菜單,點擊個性化,如圖所示。3、進(jìn)入個性化,點擊背景,如圖所示。4、進(jìn)入背景設(shè)置,點擊瀏覽圖片

如何在裝有 iOS 17 的 iPhone 上的 Apple Music 中啟用和自定義交叉淡入淡出 如何在裝有 iOS 17 的 iPhone 上的 Apple Music 中啟用和自定義交叉淡入淡出 Jun 28, 2023 pm 12:14 PM

適用于iPhone的iOS17更新為AppleMusic帶來了一些重大變化。這包括在播放列表中與其他用戶協(xié)作,在使用CarPlay時從不同設(shè)備啟動音樂播放等。這些新功能之一是能夠在AppleMusic中使用交叉淡入淡出。這將允許您在曲目之間無縫過渡,這在收聽多個曲目時是一個很棒的功能。交叉淡入淡出有助于改善整體聆聽體驗,確保您在音軌更改時不會受到驚嚇或退出體驗。因此,如果您想充分利用這項新功能,以下是在iPhone上使用它的方法。如何為AppleMusic啟用和自定Crossfade您需要最新的

如何在CakePHP中創(chuàng)建自定義分頁? 如何在CakePHP中創(chuàng)建自定義分頁? Jun 04, 2023 am 08:32 AM

CakePHP是一個強(qiáng)大的PHP框架,為開發(fā)人員提供了很多有用的工具和功能。其中之一是分頁,它可以幫助我們將大量數(shù)據(jù)分成幾頁,從而簡化瀏覽和操作。默認(rèn)情況下,CakePHP提供了一些基本的分頁方法,但有時你可能需要創(chuàng)建一些自定義的分頁方法。這篇文章將向您展示如何在CakePHP中創(chuàng)建自定義分頁。步驟1:創(chuàng)建自定義分頁類首先,我們需要創(chuàng)建一個自定義分頁類。這個

Eclipse中自定義快捷鍵設(shè)置的方法 Eclipse中自定義快捷鍵設(shè)置的方法 Jan 28, 2024 am 10:01 AM

如何在Eclipse中自定義快捷鍵設(shè)置?作為一名開發(fā)人員,在使用Eclipse進(jìn)行編碼時,熟練掌握快捷鍵是提高效率的關(guān)鍵之一。Eclipse作為一款強(qiáng)大的集成開發(fā)環(huán)境,不僅提供了許多默認(rèn)的快捷鍵,還允許用戶根據(jù)自己的偏好進(jìn)行個性化的定制。本文將介紹如何在Eclipse中自定義快捷鍵設(shè)置,并給出具體的代碼示例。打開Eclipse首先,打開Eclipse,并進(jìn)入

See all articles