NodeJS之微信开发
...
由于工作原因,太久没有写博客了,惭愧。
一直在说要买云服务器,前几天终于买了3个月,拿到之后就开始玩我最爱的nodejs,每天都是搞到12点1点过,乐此不疲啊。
从昨天开始玩的微信公众号,到今天算是真正意义上的打通了,先说一下服务器Token的验证:
Token的验证表明了你是开发者,并且你所拥有的用户群体发送的消息确保是发送到你的服务器上的。(我是这样理解的)
网上百度微信Token的验证,参差不齐,都是你抄袭我我抄袭你的这样,而我不是。
下面开始Token的验证,如下图:
首先你要填写你的服务器地址URL,这个URL表示你的服务器的公网ip或者是公网ip所映射到的域名。
然后填写Token,这个Token是你自由发挥的,收发消息的时候需要用到。
然后下面那个随机串随机生成,就那么简单就配置好了。
...
excuse me??? 黑人问号脸,那么简单?我没有看错吧...
真的就是那么简单,那么精髓来了,划重点敲黑板了:
在你的服务器上需要实现对Token的验证,也就是说当我们点击下面提交的时候,你的服务器需要接收到微信给你发来的验证消息,表示我们两个能够正常通信。
在微信的文档上面有PHP的教程,然而我是用的NodeJS,百度了一下,大约有5-6页是说的验证Token的方法,随便找了一篇,启动服务之后,点击提交按钮,验证成功。
期间还有一个小插曲,就是那个URL只支持80端口和443端口,其中80端口是默认端口,443端口表示https的端口,那么问题就来了,是不是每个人的服务器的80端口都是空闲的?是不是每个人都愿意把80端口(菊花)奉献出来?我当然是不愿意的!!!那么问题就来了,我要怎么去填写这个URL呢,于是乎我想到了很久以前就听说的一个名词:Nginx,开始各种百度它了,了解它的使用和配置,网上也是千篇一律,配置过程我也就省略了,简单写一下吧
server {
listen 80; #监听80端口
server_name nidefuwuqi.com; #设置服务名称
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8080; #这个8080端口就是我nodejs的端口
}
}
配置好之后,你就可以直接在网上访问http://nidefuwuqi.com不用带端口,Nginx会把80端口映射到你的8080端口上面,然后你就可以快快乐乐的在微信服务器配置上面把你的服务器地址填写上去了。
一切就绪,点击提交进行Token认证,认证成功皆大欢喜,认证失败分析问题,直到问题解决。
认证成功之后开始正式的微信公众号的开发,我用的是一致好评的wechat模块,根据官方文档配置之后,顺利完成文字的接收和回复,其他功能也类似,暂时没做,因为时间已经12点半了我也需要睡觉明天还要上班...
其中的一段代码我要提一下,
app.use(express.query());
app.use('/wechat', wechat(config, function (req, res, next) {})
就是这个 app.use('/wechat', wechat(config, function (req, res, next) {})。这个是接收内容的一种方式,文档和源文件写得非常清楚,大赞。最开始我以为微信服务器会自动跑到/wechat这个路由里面,结果我想多了,一直在给我的公众号发消息,然而我一直得到的是“该公众号暂时无法提供服务,请稍后再试”,我就纳闷了,是哪里有问题吗,反复检查反复检查,我也把配置修改了重新提交,发现Token居然验证失败了,我就好奇了,到底是什么原因导致的,百思不得其解啊,期间我又改了我的Nginx配置,搞得端口映射也失败了,感觉什么都被我搞炸了,有种想删库跑路的感觉...
后来我才恍然大悟,这个/wechat路由是需要你在URL里面添加到后面的,我也是差点被自己蠢哭了,添加上之后Token就能验证成功,一切问题都解决了。
注:路由并不是必须是/wechat,也可以是/a,/b,/wx,/sb...等等看你心情就好。
差不多就这些吧,后续发现问题再进行总结和记录,就酱!
NodeJS之微信开发的更多相关文章
- nodejs javascript微信开发
1.当从第三方软件需要分享到微信的时候 需要给授权处理才能获得微信信息 比如 nickname 等昵称图像等 从第三方登陆跳转到微信分享页需要 shareurl = http://open.weixi ...
- Nodejs微信开发使用wechat-api回复多条消息
在上一往篇文章<Nodejs微信开发>中,微信后台能够正常的接收到客户端的消息,并能够简单的回复一条消息至客户端. 但我的目录是将微信与Bot Framework进行关联,那么肯定就有一些 ...
- 基于fastweixin的微信开发环境搭建(一)
由于公司业务需要,开发微信版本,才开始接触微信公众平台.在github折腾了几天,试过好几个微信sdk,最终选择fastweixin.个人觉得这个框架还是值得使用的,使用也简单.那么问题来了,很多人想 ...
- oAuth2授权协议 & 微信授权登陆和绑定 & 多环境共用一个微信开发平台回调设置
OAuth2(open Auth)开放授权协议 授权码模式流程: 1.浏览器(客户端)点击一个比如使用微信登陆按钮 2.会跳到认证服务器页面,让用户选择是否授权 3.如果用户点击授权,那么会跳转到开始 ...
- 3 微信开发本地代理环境的搭建--实现将内网ip映射到外网
微信公众号的开发,要搭建网站,并且随时都有可能修改网站内容进行调试,这就需要临时外网能返回本地开发环境搭建的项目进行测试,即内网映射到公网,但是好多开发者没有自己的域名和服务器,这里我们先来搭建一个本 ...
- CabloyJS带你轻松走进NodeJS全栈开发-免费课程 作者亲授
课程说明 B站直播 为回馈新老同学对开源框架CabloyJS的支持与厚爱,快速而轻松的开启NodeJS全栈开发之旅.2019年9月5日至9月11日在B站开启了一波免费直播培训课程 课程信息,请点击链接 ...
- 一文读懂NodeJS全栈开发利器:CabloyJS(万字长文)
目录 0 修订 0.1 修订说明 0.2 修订历史 1 基本概念 1.1 CabloyJS是什么 1.2 CabloyJS核心解决什么问题 1.3 CabloyJS的开发历程 2 数据版本与开发流程 ...
- NodeJS全栈开发利器:CabloyJS究竟是什么
CabloyJS CabloyJS是一款顶级NodeJS全栈业务开发框架, 基于KoaJS + EggJS + VueJS + Framework7 文档 官网 && 文档 演示 PC ...
- 【微信开发】公众号后台设置错误导致的微信redirect_uri参数错误【图】
在微信开发中,如微信网页授权登录,分享到朋友圈自定义内容,微信h5支付时 可能会遇到微信redirect_uri参数错误的情况. 此时除了检查自己代码正确性外,还要检查一下是否正确地设置了公众号后台的 ...
随机推荐
- 微信小程序爬坑日记
新公司上手小程序.30天,从入门到现在,还没放弃... 虽然小程序发布出来快一年了,爬坑的兄弟们大多把坑都踩平了.而我一直停留在"Hello World"的学习阶段.一来没项目,只 ...
- GIT常用命令(图片版)
Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. 本来想着只把最有用.最常用的 Git 命令记下来,但是总觉得这个也挺有用.那个也用 ...
- PPPOE拨号上网流程及密码窃取具体实现
楼主学生党一枚,最近研究netkeeper有些许心得. 关于netkeeper是调用windows的rasdial来进行上网的东西,网上已经有一大堆,我就不赘述了. 本文主要讲解rasdial的部分核 ...
- PCA, SVD以及代码示例
本文是对PCA和SVD学习的整理笔记,为了避免很多重复内容的工作,我会在介绍概念的时候引用其他童鞋的工作和内容,具体来源我会标记在参考资料中. 一.PCA (Principle component a ...
- Netty与传统Server对比
前言 本文旨在介绍传统Socket服务端与NIO服务端的差异. 以餐厅服务员简单举例,每个客人对应一个请求. 传统Socket / OIO public class OioServer { @Supp ...
- 错误代码: 1054 Unknown column 't.createUsrId' in 'group statement'
1.错误描写叙述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:select count(t.id),t.`createUserId` ...
- Caffe-5.2-(GPU完整流程)训练(依据googlenet微调)
上一篇使用caffenet的模型微调.但由于caffenet有220M太大,測试速度太慢.因此换为googlenet. 1. 训练 迭代了2800次时死机,大概20分钟. 使用的是2000次的模型. ...
- UVA 1426 - Discrete Square Roots(数论)
UVA 1426 - Discrete Square Roots 题目链接 题意:给定X, N. R.要求r2≡x (mod n) (1 <= r < n)的全部解.R为一个已知解 思路: ...
- HBase源代码分析之HRegion上MemStore的flsuh流程(一)
了解HBase架构的用户应该知道,HBase是一种基于LSM模型的分布式数据库.LSM的全称是Log-Structured Merge-Trees.即日志-结构化合并-树. 相比于Oracle普通索引 ...
- Office 365 机器人(Bot)开发入门
作者:陈希章 发表于 2017年7月29日 前言 作为人工智能技术的一个主要的表现形式,这些年机器人(bot)的应用越来越广泛.不管是有实物的,还是纯软件的,现在的机器人技术应该说已经走入寻常百姓家了 ...