当前位置:首页 > 行业动态 > 正文

serverless 云函数

简介

Serverless 是无服务器计算的一种形式,它允许开发者在云端运行应用程序,而无需管理服务器,这种方法可以大大降低运维成本,并提高开发效率,微信公众号是一个非常受欢迎的平台,许多企业都在使用它来推广自己的产品和服务,本文将介绍如何基于 Serverless 使用云函数 SCF+COS 免费运营微信公众号。

环境准备

1、注册阿里云账号并登录

2、创建一个 SCF 项目

3、创建一个 COS 存储桶

4、安装阿里云 CLI 并配置好访问密钥

创建云函数

1、在 SCF 控制台创建一个新的函数

2、选择 Node.js 作为运行时环境

3、编写云函数代码,如下所示:

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const result = await db.collection('posts').where({
    _openid: event._openid,
  }).get()
  return result
}

部署云函数

1、在 SCF 控制台点击“部署”按钮

2、填写函数名称和版本号,然后点击“确认”按钮

3、等待部署完成,然后查看函数详情页面获取函数地址和密钥

配置微信公众号菜单

1、在微信公众平台进入“开发”->“基本设置”->“功能设置”,开启“网页授权获取用户基本信息”和“自定义菜单”功能

2、在“自定义菜单”中添加一个菜单项,设置 URL 为云函数地址,https://你的域名/your-function-path

3、在云函数代码中获取到 _openid 后,将其作为参数传递给菜单链接,以便在用户点击菜单时调用云函数并传入 _openid,修改云函数代码如下:

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  const openid = event._openid // 从请求参数中获取 _openid
  const result = await db.collection('posts').where({
    _openid: openid,
  }).get()
  return result
}

实现自动回复功能

1、在云函数中处理用户发送的消息,例如回复文本消息、图片消息等,以下是一个回复文本消息的示例:

exports.main = async (event, context) => {
  const openid = event._openid // 从请求参数中获取 _openid
  const content = '你好,欢迎关注我们的公众号!' // 回复内容
  return content // 将回复内容返回给用户端
}

2、在微信公众平台进入“开发”->“基本设置”->“接口权限”,配置接收消息的安全域名为你的域名或 IP,这样,只有来自这个域名或 IP 的用户才能给你的公众号发送消息。

0