云开发为 H5 类应用提供丰富的 SDK 能力,开发者使用 SDK 快速构建 H5 应用,可作为公众号后台、普通 H5 应用以及H5 活动页;同时也支持作为 PC Web 后台应用,例如 Web 管理系统、Web 网站等。
云开发 CloudBase Web 快速开始 - 快速入门 - 文档中心 - 腾讯云 (tencent.com)
云开发 CloudBase 快速开始 - 开发指南 - 文档中心 - 腾讯云 (tencent.com)
在项目根目录下(cloudbaserc.json 所在目录)运行命令,即可部署 node-app
函数
tcb fn deploy node-app
部署完成后可以使用 tcb fn list
命令查看已经部署完成的函数列表
tcb fn list
云函数云函数 | 云开发 CloudBase - 一站式后端云服务
云开发 CloudBase Node.js 快速开始 - 快速入门 - 文档中心 - 腾讯云 (tencent.com)
云开发 CloudBase Web 端其他实战案例 - 视频专区 - 文档中心 - 腾讯云 (tencent.com)
python+腾讯云python五分钟开发微信公众号接口_哔哩哔哩_bilibili
云函数编写概览 - Serverless - 控制台 (tencent.com)
微信官方文档微信公众平台开发概述 | 微信开放文档 (qq.com)
微信云开发在公众号中使用云开发 | 微信开放文档 (qq.com)
const cloud = require('wx-server-sdk') //引入云函数包
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV //初始化云函数环境
})
exports.main = async (event) => {
const { ENV, OPENID, APPID } = cloud.getWXContext()
// 如果云函数所在环境为 abc,则下面的调用就会请求到 abc 环境的数据库
const dbResult = await cloud.database().collection('test').get()
return {
dbResult,
ENV,
OPENID,
APPID,
}
}
用云函数获取access token:学会微信服务端开发第一步 - 简书 (jianshu.com)
用云函数获取用户信息:Bmob云 Serverless 开发公众号邀请返利 - 简书 (jianshu.com)
测试号:微信公众平台 (qq.com)
这个文档太棒了!云函数 · Web – Bmob后端云
function onRequest(request, response, modules) {
var token = "weixin"; //这里的值必须与在微信公众号后台填入的token值一致
var crypto = modules.oCrypto; //使用加解密模块
var httptype = modules.oHttptype; //获取调用云函数的是post或者get方式
var xml2js = modules.oXml2js; //实现xml和js格式之间的相互转换
var db = modules.oData; //数据库对象
var functions = modules.oFunctions;//调用云函数
if ("get" == httptype) {
//是get方法,则是微信验证回调的url是否有效
var oriStr = [token, request.query.timestamp, request.query.nonce].sort().join('')
var code = crypto.createHash('sha1').update(oriStr).digest('hex');
if (code == request.query.signature) { //验证通过,输出
response.end(request.query.echostr);
} else {
response.end("Unauthorized");
}
} else {
//是post,接收定阅者发送过来的消息后返回,把反馈意见存储表“message”中。
functions.run({
"name": "exportaccesstoken"
},function(err,data){
var accesstoken=JSON.parse(data).accesstoken;//已经拿到accesstoken了!接口调用凭据,接口调用都要用
db.insert({
"table":"message", //表名,也已经存到数据库中了!
"data":{"userId":request.body.xml.FromUserName,"content":request.body.xml.Content}
},function(err,data){
//构造公众号后台所需要的xml格式,并返回给公众号后台 ,在这后边写新逻辑!相当于很多回调!
//1.模板消息回复-----------------------------------------------------------------------
if (request.body.xml.Content=='model1') {//返回模板消息还有点问题
functions.run({
"name": "sendmodelmes",
"data":{"toUser":request.body.xml.FromUserName,"accesstoken":accesstoken}
},function(err,data){});
};
// 2.关注后发送消息--------------------------------------------------------------------
if((request.body.xml.MsgType == 'event') && (request.body.xml.Event == 'subscribe')) { //格式是什么啊,应该没问题
var replyStr = "感谢你的关注!" + "\n";
functions.run({
"name": "create_text_xml",//还是给自己发
"data":{"FromUserName":request.body.xml.FromUserName,"ToUserName":request.body.xml.ToUserName,"Content":replyStr}
},function(err,data){
response.end(data);
});
}
//改为调用发送文本消息函数:
functions.run({
"name": "create_text_xml",//还是给自己发
"data":{"FromUserName":request.body.xml.FromUserName,"ToUserName":request.body.xml.ToUserName,"Content":request.body.xml.MsgType}
},function(err,data){
response.end(data);
});
});
});
}
}
//开发心得:调用云函数要在回调里面再写新逻辑
12.5 实现云函数被动回复消息,并且可获得access token
12.6想实现自定义菜单和模板消息
自定义菜单文档:
接口调用请求说明
http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
自定义菜单接口可实现多种类型按钮,如下:微信开放文档 (qq.com)
- click:点击推事件用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互;
- view:跳转URL用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的网页URL,可与网页授权获取用户基本信息接口结合,获得用户基本信息。
对云函数代码很有帮助:(128条消息) nodejs 实现微信公众号自定义菜单、关注回复、自定义回复_菜鸟驿站2020的博客-CSDN博客_nodejs 微信公众号自定义菜单
它的逻辑很好:(128条消息) 微信公众号接入第三方服务器,设置自动回复、关键回复、自定义菜单,配置及开发流程_你的才华撑不起野心时,静下心学习;你的能力驾驭不了目标时,沉下心努力-CSDN博客