公众号配置服务器必须是80端口吗_手把手教你微信公众号开发:Werobot入门指南...

个人公众号:后端技术漫谈

Werobot简介
WeRoBot 是一个微信公众号开发框架,采用MIT协议发布。
Werobot文档:https://werobot.readthedocs.org/zh_CN/latest/


我原本是打算在个人订阅号玩一玩自定义开发,因为可以实现很多有趣的功能。
结果弄到自定义菜单的时候居然发现:个人订阅号无法使用自定义菜单开发接口!需要认证!个人订阅号无法使用自定义菜单开发接口!需要认证!个人订阅号无法使用自定义菜单开发接口!需要认证!
然而,个人名义的订阅号无法进行微信认证,所以开发的热情一下子丢了一半。
所以在这里就简短的说一下入门流程,官方文档写的很好,但是入门上感觉写的有不连贯的感觉,在这我就当一个补充教程。

申请公众号

申请公众号是一个必要的步骤,没有什么特别需要注意的地方,不过要清楚不同的公众号类型所拥有的权限是不同的:

9b34b986d26a76648813d435d9cbe66c.png

接口权限

获取开发者ID

取得了公众号后,登录后台,点击“基本配置”,拿到开发者ID和秘钥,底下的服务器配置需要在服务器部署后再进行设置。

3014ce4481538573c44bdc88afbc1db3.png

获得ID

服务器部署

如果要进行微信的自定义开发,你需要一台后台服务器来接受用户消息,处理消息,最后返回消息给用户。
并且,你的服务器需要有域名,也就是网址,而非IP地址。
我的服务器是亚马逊EC2,当然你也可以用国内的云服务器。
我的域名则是购买的,建议购买国外的服务商,这样得到的域名不需要备案。

根据Werobot文档:你必须有部署的server,基本上云服务器的Linux都自带了一些,所以你可以先写代码,运行时候在观察下是否可以直接部署。
server 支持以下几种:

  • cgi
  • flup
  • wsgiref
  • waitress
  • cherrypy
  • paste
  • fapws3
  • tornado
  • gae
  • twisted
  • diesel
  • meinheld
  • gunicorn
  • eventlet
  • gevent
  • rocket
  • bjoern
  • auto

根据Werobot文档,先试着写一个demo:

a0338b0d6e63809ebdeeda8d09b35fc2.png

winscp

源代码:

注意我用的port是8082,我使用了反向代理。
一般来说,如果你的服务器只有一个微信后台服务,请使用80端口!
如果你是https,请使用443端口!
注意到我的token是随机自己设置的,微信规定是3位以上数字字母。之后在填写的服务器配置上用得到。

接着,你可以运行:

python rebot.py

如图,已经运行(最好用screen或者文档说的supervisor保证进程不被杀掉):

18635ae1083ae927ad4b4affec92e4bb.png

demo

验证服务器有效性

之后,修改服务器配置,填写你的域名(之前确保你已经做好域名DNS映射!),token=‘yzd’,点击确定,微信会自动发送一个确认信息到你的服务器,一旦成功返回正确结果,验证就成功了。

52bfbb97392f81f869da5e8b48006db2.png

服务器配置

实验效果

现在,你可以用手机给订阅号发消息:

1713390905bc824676db5eb7a8694af4.png

test

补充

最后,贴上我之前写的自定义菜单的源码,由于我是个人订阅号,没有权限,所以返回了48001错误,郁闷…

关注我

我目前是一名后端开发工程师。主要关注后端开发,数据安全,边缘计算等方向。

微信:yangzd1102(请注明来意)

原创博客主要内容

  • Java知识点复习全手册
  • Leetcode算法题解析
  • 剑指offer算法题解析
  • SpringCloud菜鸟入门实战系列
  • SpringBoot菜鸟入门实战系列
  • 爬虫相关技术文章
  • 后端开发相关技术文章

个人公众号:后端技术漫谈

7d60f4441b3669aa9b528055bde18173.png

如果文章对你有帮助,不妨收藏起来并转发给您的 朋友们~

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当微信公众号客户端向 Node.js 开发服务器发送 POST 请求时,服务器可以使用 Node.js 内置的 HTTP 模块来处理这些请求。下面是一个处理微信公众号客户端 POST 请求的基本示例: ```javascript const http = require('http'); const querystring = require('querystring'); const server = http.createServer((req, res) => { if (req.method === 'POST' && req.url === '/wechat') { let body = ''; req.on('data', chunk => { body += chunk.toString(); }); req.on('end', () => { const postData = querystring.parse(body); console.log(postData); res.end('OK'); }); } else { res.end('Hello World!'); } }); server.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` 这段代码创建了一个 HTTP 服务器,监听在 3000 端口上。当收到来自微信公众号客户端的 POST 请求时,会解析请求体中的数据,并打印到控制台上,最后返回一个字符串 "OK"。当收到其他请求时,返回 "Hello World!"。 需要注意的是,微信公众号开发涉及到很多安全和验证的问题,开发者需要仔细阅读微信公众平台的开发文档,了解如何进行接口调用和消息交互。 ### 回答2: 在使用Node.js开发微信公众号时,服务端可以使用第三方库如Express来处理HTTP请求。当客户端发送一个POST请求时,服务端可以通过Express中间件来解析请求内容,并触发相应的处理函数。 具体而言,服务端在接收到客户端的POST请求后,首先会解析请求的内容,包括请求头、请求体等等。在微信公众号开发中,通常会解析微信服务器发送过来的XML格式的请求体,其中包含了用户发送的消息或事件等信息。 服务端可以使用Express中的`body-parser`中间件来解析请求体,并将解析后的JSON对象传递给后续的处理函数。通过定义相应的路由和处理函数,服务端可以根据不同的请求内容来响应对应的操作。 例如,当客户端发送一条用户的文本消息时,服务端可以通过定义一个处理函数来响应这个请求,获取消息内容并进行相应的处理,比如回复一条特定的文本消息。 另外,服务端还能和微信服务器进行交互,比如校验服务器地址的有效性、获取access_token等操作。服务端可以通过向微信服务器发送GET或POST请求来实现这些功能。微信服务器会根据请求内容进行相应的处理,并发送相应的响应给服务端。 通过这样的方式,服务端可以响应客户端的POST请求,并进行相应的处理和交互,从而实现微信公众号开发和运行。 ### 回答3: 在Node.js开发微信公众号时,服务端是通过使用框架或库来响应客户端的POST请求的。 首先,服务端会创建一个HTTP服务器,并监听指定的端口。当客户端发送POST请求时,服务端会接收到请求。 在接收到POST请求后,服务端会进行解析,获取请求中的参数和数据。这可以通过使用Node.js内置的http模块或者一些第三方库来实现。 接下来,服务端会根据请求的具体内容进行相应的处理。在微信公众号开发中,常见的是处理用户的消息或事件。服务端会根据接收到的POST请求中的数据,比如用户发送的消息类型、内容等,来进行相应的处理,比如根据关键词回复消息或者执行相应的操作。 处理完请求后,服务端会生成相应的响应数据,并将其返回给客户端。这可以通过设置HTTP响应头部和正文来实现。在微信公众号开发中,通常会将响应数据封装成XML格式,再返回给客户端。 最后,服务端会将封装好的响应数据发送给客户端。客户端收到响应后,会根据接收到的数据进行相应的处理,比如显示在用户的微信界面上。 总之,Node.js开发微信公众号时,服务端是通过创建HTTP服务器来响应客户端的POST请求的。服务端会接收、解析、处理请求,并返回相应的数据给客户端。通过这种方式,实现了服务端与客户端之间的交互和通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值