wechat-plus 使用node开发微信公众号
github:https://github.com/liuyinglong/node-wechat
npm:https://www.npmjs.com/package/wechat-plus
install
npm install wechat-plus --save
use
//引入
var WeChat=require("wechat-plus");
let weChat= new WeChat({
token: "your token",
appid: "your appid",
secret: "your secret",
});
//文字消息
weChat.event.on("weChat_msg_text", function (res, msg) {
// msg接受到的消息内容
// res对象
// replay 方法 第一个参数为消息 第二个参数为消息类型 默认为text
res.reply({
ToUserName: msg.FromUserName,
FromUserName: msg.ToUserName,
Content: "ee" //回复内容
},"text");
});
//语音消息
weChat.event.on("weChat_msg_voice", function (res, msg) {
// msg接受到的消息内容
// res对象
// replay 方法 第一个参数为消息 第二个参数为消息类型
res.reply({
ToUserName: msg.FromUserName,
FromUserName: msg.ToUserName,
Content: "ee" //回复内容
},"text");
});
/**
* 生成授权链接
* @param redirectUrl
* @param state 默认为空
* @param scope 默认为"snsapi_userinfo"
* @returns {string}
*/
let authUrl=weChat.authUrl("http://youAddress.com/code","STATE","snsapi_userinfo")
/**
* 获取用户信息
* @param code
* @returns {Promise.<TResult>|Request}
*/
weChat.getUserInfo("CODE").then(function(res){
//userInfo 为res.body
});
/**
* 生成jsSDK签名
* @param url 链接地址
* @returns {Promise.<TResult>}
* noncestr:随机字符串,
timestamp: 时间戳,
signature: 签名
*/
weChat.jssdkSignature("url").then(function(result){
})
express 路由示例
let express = require('express');
let router = express.Router();
let WeChat = require("wechat-plus");
let weChat=new WeChat({ //以下参数自行替换
token: "******",
appid: "***************************",
secret: "***************************",
});
//文字消息事件
weChat.event.on("weChat_msg_text", function (res, msg) {
//回复内容
res.reply({
ToUserName: msg.FromUserName,
FromUserName: msg.ToUserName,
Content: "ee"
});
});
// 开发者认证
router.get('/wechat', function (req, res, next) {
if (weChat.auth(req)) {
res.send(req.query.echostr)
} else {
res.send("false")
}
});
router.post("/wechat", function (req, res, next) {
//用户消息处理函数 如果为进行消息监听 则向微信服务器返回空数据
weChat.userMessage(req, res);
});
//获取用户信息 跳转到授权页面
router.get("/wechat/auth", function (req, res, next) {
let t = weChat.authUrl("http://vpn.getlove.cn/api/wechat/code");
res.redirect(t);
});
//根据code 获取用户的基本信息
router.get("/wechat/code", function (req, res, next) {
weChat.getUserInfo(req.query.code).then(function(data){
//data中包含用户信息
}).catch(function(err){
let t = weChat.authUrl("http://vpn.getlove.cn/api/wechat/code");
res.redirect(t);
})
});
//jssdk获取签名
router.post("/share", function (req, res, next) {
weChat.jssdkSignature(req.body.url).then(function (data) {
res.send(data);
})
});
module.exports = router;
原文地址 :http://www.jianshu.com/p/eedfde5a408d
如有问题 可在原文中留言
wechat-plus 使用node开发微信公众号的更多相关文章
- vue+node.js+webpack开发微信公众号功能填坑——v -for循环
页面整体框架实现,实现小功能,循环出数据,整体代码是上一篇 vue+node.js+webpack开发微信公众号功能填坑--组件按需引入 修改部门代码 app.vue <yd-flexbox&g ...
- vue+node.js+webpack开发微信公众号功能填坑——组件按需引入
初次开发微信公众号,整体框架是经理搭建,小喽喽只是实现部分功能,整体页面效果 整个页面使用两个组件:布局 FlexBox,搜索框 Search,demo文档 http://vue.ydui.org/d ...
- PHP开发微信公众号(一)二维码的获取
要开发微信公众号,首先进行需要注册一个,然后认证.这就不用多说了. 当然如果没有,也可以去申请一个测试号来使用,地址:https://mp.weixin.qq.com/debug/cgi-bin/sa ...
- 小机器人自动回复(python,可扩展开发微信公众号的小机器人)
api来之图灵机器人.我们都知道微信公众号可以有自动回复,我们先用python脚本编写一个简单的自动回复的脚本,利用图灵机器人的api. http://www.tuling123.com/help/h ...
- PHP开发微信公众号
PHP开发微信公众号:配置和部署服务器及Token认证 https://zhuanlan.zhihu.com/p/28259840
- 使用vue开发微信公众号下SPA站点的填坑之旅
原文发表于本人博客,点击进入使用vue开发微信公众号下SPA站点的填坑之旅 本文为我创业过程中,开发项目的填坑之旅.作为一个技术宅男,我的项目是做一个微信公众号,前后端全部自己搞定,不浪费国家一分钱^ ...
- Java开发微信公众号(五)---微信开发中如何获取access_token以及缓存access_token
获取access_token是微信api最重要的一个部分,因为调用其他api很多都需要用到access_token.比如自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等在请求的时候 ...
- Java开发微信公众号(四)---微信服务器post消息体的接收及消息的处理
在前几节文章中我们讲述了微信公众号环境的搭建.如何接入微信公众平台.以及微信服务器请求消息,响应消息,事件消息以及工具处理类的封装:接下来我们重点说一下-微信服务器post消息体的接收及消息的处理,这 ...
- Java开发微信公众号(三)---微信服务器请求消息,响应消息,事件消息以及工具处理类的封装
在前面几篇文章我们讲了微信公众号环境的配置 和微信公众号服务的接入,接下来我们来说一下微信服务器请求消息,响应消息以及事件消息的相关内容,首先我们来分析一下消息类型和返回xml格式及实体类的封装. ( ...
随机推荐
- svo_udp通信02——一组数据发送
注意事项: 1.client 和server 定义的发送和接收数据(结构)要相同.如: client.c: struct position_packet {float pos_x[5];float p ...
- LeetCode 104. Maximum Depth of Binary Tree C++ 解题报告
104. Maximum Depth of Binary Tree -- Easy 方法 使用递归 /** * Definition for a binary tree node. * struct ...
- 关于使用git上传远程仓库的两种情况(新项目与老项目)
具体的git配置与github仓库ssh配置在这里就不再赘述,本次只讲自己之前遇到的两个内容 1.还没有项目,将远程仓库clone下来直接在里边写项目. 2.已有项目,将已有的项目直接添加到建立好的远 ...
- 学习笔记DL008:概率论,随机变量,概率分布,边缘概率,条件概率,期望、方差、协方差
概率和信息论. 概率论,表示不确定性声明数学框架.提供量化不确定性方法,提供导出新不确定性声明(statement)公理.人工智能领域,概率法则,AI系统推理,设计算法计算概率论导出表达式.概率和统计 ...
- 使用bind提供域名解析服务
- c# 获取 bios 序列号
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.M ...
- log4j根据包名 日志输出到不同文件中 , service层无法输出日志问题
1. service 层因为要配置事务,使用了代理 <aop:config proxy-target-calss=''true"> <aop:pointcut id=&qu ...
- Logback动态修改日志级别
https://blog.csdn.net/totally123/article/details/78931287
- Kettle解决方案: 第三章 安装和配置
- C#遍历枚举中所有值
public enum EnumColor { 红色=1, 黑色=2, 白色=3 } foreach (EnumColor item in Enum.GetValues(typeof(EnumColo ...