文档章节

nodejs express wechat 实现微信消息功能

 小懒猫Mao
发布于 2016/04/20 16:07
字数 406
阅读 566
收藏 3
点赞 1
评论 0

参考官方:https://github.com/node-webot/wechat

直接上能用的

1. 微信公众平台准备:
需要:
(1)appid:wxf5eefxxx19a47c0d 。即 AppID(应用ID)。
(2)URL(服务器地址): http://test.nodejs.xxx.com/wechat 。   填你的服务器处理请求地址。
(3)token:CjpMHxxxEEbfq3qTesSc 。   随便写,跟代码保持一致即可,最好是20位。
(4)encodingAESKey: a3uGNIYMEYraMX3xxxxxjqNAOYDnA8rIhseK99。 即图中的 消息加解密密钥。点 随机生成即可。(追加:用的时候发现,这个没用到,估计选 加密方式 时起作用)

2. 写最简单的 基于 express和wechat的处理代码。

// 直接改 app.js
var express = require('express');
var app = express();

var wechat = require('wechat');
var config = {
	token : 'CjpMHxxxEEbfq3qTesSc',
	appid : 'wxf5xxxxd19a47c0d',
	encodingAESKey : 'a3uGNIYMEYraMX3xxxxxxxwjqNAOYDnA8rIhseK99'
};

app.use(express.query());
app.use('/wechat', wechat(config, function(req, res, next) {
	// 微信输入信息都在req.weixin上
	var message = req.weixin;
	console.log('log mao:', message);

	if (message.Content === 'diaosi') {
		// 回复屌丝(普通回复)
		res.reply('hehe');
	} else if (message.Content === 'text') {
		console.log('log text');
		// 你也可以这样回复text类型的信息
		res.reply({
			content : 'text object',
			type : 'text'
		});
	} else if (message.Content === 'hehe') {
		// 回复一段音乐
		res.reply({
			type : "music",
			content : {
				title : "来段音乐吧",
				description : "一无所有",
				musicUrl : "http://mp3.com/xx.mp3",
				hqMusicUrl : "http://mp3.com/xx.mp3",
				thumbMediaId : "thisThumbMediaId"
			}
		});
	} else {
		// 回复高富帅(图文回复)
		res.reply([ {
			title : '你来我家接我吧',
			description : '这是女神与高富帅之间的对话',
			picurl : 'https://www.baidu.com/img/bd_logo1.png',
			url : 'https://www.baidu.com/'
		} ]);
	}
}));

// 注意加上 端口监听
var server = app.listen(13001, function() {
	var host = server.address().address;
	var port = server.address().port;

	console.log('Example app listening at http://%s:%s', host, port);
});

消息结构说明 (req.weixin):

{
	ToUserName : 'gh_30e178xxbe7',
	FromUserName : 'omIHmwCxxxxxxf8Dyn2YGQj4',
	CreateTime : '1461140663',
	MsgType : 'text',
	Content : 'xxv',
	MsgId : '62755513xxx5544996'
}

3. 跑起来看看吧

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 18
码字总数 10962
作品 0
昌平
Ubuntu 16.04安装Wine版的微信(deepin-wechat)

说明: 1、使用的Wine版本是深度出品(Deepin),已经精简了很多没用的配置,使启动能非常快,占用资源小。 2、关于没有.wine文件夹的解决方法:在命令行上运行winecfg; 3、有可能在今年Web...

easonjim ⋅ 02/22 ⋅ 0

linux下安装微信小程序开发工具

1.安装wine sudo apt-get install wine 2. 下载linux版nwjs-sdk wget https://dl.nwjs.io/v0.25.4/nwjs-sdk-v0.25.4-linux-x64.tar.gz 3.解压nwjs-sdk tar xvf nwjs-sdk-v0.25.4-linux-x64.t......

wftt ⋅ 04/24 ⋅ 0

H5与小程序如何共用的一套代码? ——小程序混合开发(1)

一、目标 很多时候,大家是不是有这种想法,开发的小程序中,H5与小程序能否共用的一套代码,带后端并且可以提交给微信审核呢? 告诉你,可以! 如何做呢?看下边 二、准备工作 平台: 进入w...

大王12 ⋅ 05/31 ⋅ 0

使用nodejs消费SAP Cloud for Customer上的Web service

Jerry在公众号文章C4C和微信集成系列教程里曾经使用nodejs去消费C4C提供的标准webservice。 看一个具体例子:C4C里Individual Customers可以维护Social User Profile,在Jerry上面的公众号文...

JerryWang_SAP ⋅ 昨天 ⋅ 0

用递归法把二叉树的叶子结点按从左到右的顺序连成一个单链表

一、例子 上图中的二叉树的叶子结点,按从左到右的顺序连成的单链表如下图所示: 二、定义数据结构 三、核心算法 四、完整代码 运行结果 TopCoder & Codeforces & AtCoder交流QQ群:6482029...

海天一树X ⋅ 04/18 ⋅ 0

Python selenium抓取微博内容

Python抓取微博有两种方式,一是通过selenium自动登录后从页面直接爬取,二是通过api。 这里采用selenium的方式。 程序: 运行结果: 同时还生成了weibo.txt文件,内容如下 TopCoder & Codef...

海天一树X ⋅ 05/17 ⋅ 0

PC版微信聊天记录重装系统后如何保留!

保留的意思是重装系统后,登上微信,以前的聊天记录都在。 前提:重装前微信的聊天记录所在目录最好在除系统分区以外的分区,例如D盘; 操作: 1、只重装系统分区,例如C盘,聊天记录所在分区...

luogangan ⋅ 今天 ⋅ 0

docker深入2-监控docker-swarm集群的方案swarmprom介绍

docker深入2-监控docker-swarm集群的方案swarmprom介绍 2018/4/18 本文目的 引导 本地化 简介 相信您也对如何监控容器化的业务感到烦恼,在此先强烈推荐您体验一下 这个演示方案,期待能帮助...

pcnk ⋅ 04/18 ⋅ 0

Python Selenium爬取百度百科旅游景点的基本信息

一、编程环境 操作系统:Win 10 编程语言:Python 3.6 二、景点名单准备 在与python文件同级的目录下创建scenicspots5A_namelist.txt,内容为 三、程序 四、运行结果 生成了文件夹scenicspo...

海天一树X ⋅ 05/25 ⋅ 0

Codeforces 976C 题解报告

一、题目 http://codeforces.com/contest/976/problem/C 二、思路 对数据进行排序: (1)按左边的数从小到大排; (2)若左边的数相等,则按右边的数从大到小排。 排序之后,若一个数的右边...

海天一树X ⋅ 05/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

面试-JVM 内存结构

JVM 内存结构

秋日芒草 ⋅ 2分钟前 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 25分钟前 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 56分钟前 ⋅ 0

Spring JavaConfig 注解

JavaConfig注解允许开发者将Bean的定义和配置放在Java类中。它是除使用XML文件定义和配置Bean外的另一种方案。 配置: 如一个Bean如果在XML文件可以这样配置: <bean id="helloBean" class="...

霍淇滨 ⋅ 今天 ⋅ 0

Spring clound 组件

Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类。 润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。 Ribbon,客户端负载均衡,特性有区域亲和、重试机制。...

英雄有梦没死就别停 ⋅ 今天 ⋅ 0

Confluence 6 重新获得站点备份文件

Confluence 将会创建备份,同时压缩 XML 文件后存储熬你的 <home-directory>/backups> 目录中。你需要自己访问你安装的 Confluence 服务器,并且从服务器上获得这个文件。 运行从 Confluence...

honeymose ⋅ 今天 ⋅ 0

informix的常用SQL语句

1、创建数据库 eg1. 创建不记录日志的库testdb,参考语句如下: CREATE DATABASE testdb; eg2. 创建带缓冲式的记录日志的数据库testdb(SQL语句不一定在事务之中,拥有者名字不被用于对象的解...

wangxuwei ⋅ 今天 ⋅ 0

matplotlib画图

最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数。 from pylab import *from numpy import *x = linspace(0, 5, 10)y = x ** 2figure()plot(x, y, 'r')...

Dr_hu ⋅ 今天 ⋅ 0

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 今天 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

小致dad ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部