2014-07-24 .NET实现微信公众号的消息回复与自定义菜单
今天是在吾索实习的第12天。我们在这一天中,基本实现了微信公众号的消息回复与自定义菜单的创建。
首先,是实现消息回复,其关键点如下:
- 读取POST来的数据流:Stream 数据流变量 = HttpContext.Current.Request.InputStream,并把其存入数组:数据流变量.Read(数组变量, 0, (int)数据流变量.Length) 后,再转换为字符串:string 字符串变量 = Encoding.UTF8.GetString(数组变量) 。
- 在数据流所转换成的字符串中获取XML中所需的节点:根节点.SelectSingleNode("//所要节点的名字").InnerText。
- 以XML文档格式向微信服务器返回消息,XML格式如下(以文本消息为例):
"<xml>"+
"<ToUserName><![CDATA[" + 用户账号 + "]]></ToUserName>"+
"<FromUserName><![CDATA[" + 开发者公众号 + "]]></FromUserName>"+
"<CreateTime>" + DateTime.Now.Ticks.ToString() + "</CreateTime>"+
"<MsgType><![CDATA[text]]></MsgType>"+
"<Content><![CDATA["+回复的内容+"]]></Content>"+
"</xml>";
另外,是创建自定义菜单,其关键点如下:
- 获取接口凭证access_token,发送请求给https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=开发者自己的APPID&secret=开发者自己的APPSECRET,即可获得access_token字符串。应注意的是,此字符串的有效期为两小时。
- 发送请求给https://api.weixin.qq.com/cgi-bin/menu/create?access_token=所获得的access_token。发送请求要应使用https协议。
- 以JSON格式编制具体自定义菜单的内容与功能。
在今天对微信公众号的二次开发中,也遇到一些小插曲。就是编制好自定义菜单的代码后,在微信公众号的开发者中心中按提交修改服务器配置时,一直出现“系统发生错误,请稍后再试”。我们以为这次试验又要以失败告终的时候,却奇怪的发现服务号中的自定义菜单已经创建成功了。我们又回到网站看了一下,发现URL仍然没改变,但过了不久,在查看一遍,发现URL居然变了,这就令我们觉得相当奇怪了。真不知道,是代码编写有问题,还是微信那边的问题,希望有发生类似情况的各位能帮忙指点迷津,谢谢!
2014-07-24 .NET实现微信公众号的消息回复与自定义菜单的更多相关文章
- C#微信公众号开发 -- (六)自定义菜单事件之CLICK
微信公众号中当用户手动点击了按钮,微信公众号会被动的向用户发送文字消息或者图文消息. 通过C#微信公众号开发 -- (五)自定义菜单创建 我们知道了如何将CLICK类型的按钮添加到自己的微信公众平台上 ...
- .NET微信公众号开发-2.0创建自定义菜单
一.前言 开发之前,我们需要阅读官方的接口说明文档,不得不吐槽一下,微信的这个官方文档真的很烂,但是,为了开发我们需要的功能,我们也不得不去看这些文档. 接口文档地址:http://mp.weixin ...
- .NET微信公众号开发-3.0查询自定义菜单
一.前言 前面我们已经创建好了我们的自定义菜单.那么我们现在要如何查询我们自定义的菜单.原理都是一样的,而且都是相当简单,只是接口地址文档换掉了. 2.0开始编码 同样我们首先创建好我的查询页面,在这 ...
- C#微信公众号开发 -- (七)自定义菜单事件之VIEW及网页(OAuth2.0)授权
通俗来讲VIEW其实就是我们在C#中常用的a标签,可以直接在自定义菜单URL的属性里面写上需要跳转的链接,也即为单纯的跳转. 但更多的情况下,我们是想通过VIEW来进入指定的页面并进行操作. 举一个简 ...
- C#微信公众号开发 -- (五)自定义菜单创建
公众号中,底部都是有自己定义的功能按钮,通过点击某个按钮来实现指定的业务逻辑操作. 下面就来说说这些按钮是怎样放到微信公众平台的,还是先来看看微信的官方解释: 请注意: 1.自定义菜单最多包括3个一级 ...
- php 微信公众号图文消息回复的实现 与access_token
//代码如下 <?phpclass IndexAction extends Action { public function __construct(){ } public function i ...
- C#实现微信公众号群发消息(解决一天只能发一次的限制)
经过几天研究网上的代码和谢灿大神的帮忙,今天终于用C#实现了微信公众号群发消息,现在整理一下. 总体思路:1.首先必须要在微信公众平台上申请一个公众号. 2.然后进行模拟登陆.(由于我对http传输原 ...
- Java微信公众号安全模式消息解密
这篇文章主要为大家详细介绍了Java微信公众号安全模式消息解密,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.微信公众平台下载解密工具,导入项目中,根据demo解密消息 public stat ...
- 微信小程序结合微信公众号进行消息发送
微信小程序结合微信公众号进行消息发送 由于小程序的模板消息已经废弃了,官方让使用订阅消息功能.而订阅消息的使用限制比较大,用户必须得订阅.需要获取用户同意接收消息的权限.用户必须得和小程序有交互的时候 ...
随机推荐
- C primer plus 读书笔记第六章和第七章
这两章的标题是C控制语句:循环以及C控制语句:分支和跳转.之所以一起讲,是因为这两章内容都是讲控制语句. 第六章的第一段示例代码 /* summing.c --对用户输入的整数求和 */ #inclu ...
- Cloudra公司CCP:DS——认证数据专家
原文:http://vision.cloudera.com/24195/. 译文: 每天我都能看到大数据怎样改变我们生活的文章.数据科学家们正在生物医药领域找寻新的方法治愈癌症.帮助银行与欺诈做斗争, ...
- 【iOS与EV3混合机器人编程一系列五个】iOS_WiFi_EV3_Library 解剖连接EV3
在上一篇文章中.我们解说了怎样用开源码库CocoaAsyncSocket来实现iOS上的UDP和TCP数据通信.那么在本文中.我们将介绍在CocoaAsyncSocket的基础怎样使用UDP和TCP连 ...
- AngularJS clone directive 指令复制
需求背景: directive模块化某表单信息,但表单信息可加入多条.此时就涉及到clone directive. 解决方式: 能够通过使用angularjs中$com ...
- DELL R720服务器安装Windows Server 2008 R2 操作系统图文详解
DELL R720服务器安装Windows Server 2008 R2 操作系统图文详解 说明:此文章中部分图片为网络搜集,所以不一定为DELL R720服务器安装界面,但可保证界面内容接近DELL ...
- UI开发--响应者链条
一.触摸事件处理的详细过程 用户点击屏幕后产生的一个触摸事件,经过一些列的传递过程后,会找到最合适的视图控件来处理这个事件 找到最合适的视图控件后,就会调用控件的touches方法来作具体的事件处理 ...
- 27个Jupyter快捷键、技巧(原英文版)
本文是转发自:https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/ 的一篇文章,先记录在此,等有空时我会翻译成中文 ...
- apktool的下载地址
googlecode将要关闭,代码转移到以下网址 http://ibotpeaches.github.io/Apktool/
- Android 仿Win8的metro的UI界面(上)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23441455 昨晚没事手机下载了一些APP,发现现在仿win8的主界面越来越多, ...
- Adding Swap Files
Adding Swap Files If you do not have free disk space to create a swap partition and you do need to a ...