1. はじめに
開発する前に、公式インターフェースのドキュメントを読む必要があります。WeChat の公式ドキュメントは本当にひどいものだと言わざるを得ません。しかし、必要な機能を開発するには、これらのドキュメントも読む必要があります。 >
インターフェース文書のアドレス: http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.htmlこれらのドキュメントを読み、基本的な意味を理解しました。作成したいメニューを作成し、WeChat サーバーに送信すると、メニューが正常に作成されたかどうかを判断するためのステータス コードが表示されます。 json データを送信する前に認証を行う必要があります。
2.準備
まず、作成したいメニューをテキストテキストに書きます:
{ "button":[ { "type":"view", "name":"付停车费", "url":"http://www.baidu.com" },{ "name":"个人中心", "sub_button":[ { "type":"view", "name":"个人信息", "url":"http://www.baidu.com" }, { "type":"view", "name":"订单查询", "url":"http://www.baidu.com" }, { "type":"view", "name":"使用帮助", "url":"http://www.baidu.com" }, { "type":"view", "name":"下载APP", "url":"http://www.baidu.com" }] }] }
まず、一般的なハンドラー createMenu.ashx を作成します。
同時に、メニューを作成するときに、ID を確認するために access_token を取得する必要があります。このトークンはインターフェイスを通じて取得することができます。 、appid パラメータと Secret パラメータを渡すだけです
最後のステップ: トークンを取得し、JSON メニュー データをポストしてメニューを作成します。
次のコードが表示された場合:
{"errcode":0,"errmsg":"ok"}
これは、メニューが正常に作成されたことを意味します。
コードは次のとおりです:
public string GetPage(string posturl, string postData) { Stream outstream = null; Stream instream = null; StreamReader sr = null; HttpWebResponse response = null; HttpWebRequest request = null; Encoding encoding = Encoding.UTF8; byte[] data = encoding.GetBytes(postData); // 准备请求... try { // 设置参数 request = WebRequest.Create(posturl) as HttpWebRequest; CookieContainer cookieContainer = new CookieContainer(); request.CookieContainer = cookieContainer; request.AllowAutoRedirect = true; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; outstream = request.GetRequestStream(); outstream.Write(data, 0, data.Length); outstream.Close(); //发送请求并获取相应回应数据 response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 instream = response.GetResponseStream(); sr = new StreamReader(instream, encoding); //返回结果网页(html)代码 string content = sr.ReadToEnd(); string err = string.Empty; Response.Write(content); return content; } catch (Exception ex) { string err = ex.Message; return string.Empty; } }