返回

打造自主微信消息推送平台:云开发+测试公众号

后端

前言

随着微信公众号的普及,越来越多的企业和个人开始使用微信公众号来进行宣传推广。为了与用户进行更好的互动,很多公众号都希望能够实现消息推送功能。传统的微信消息推送需要购买推送服务,并且需要缴纳一定的费用。但是,我们可以利用云开发和微信测试公众号来搭建一个微信消息推送平台,从而节省推送服务和服务期成本。

搭建微信测试公众号

  1. 注册微信测试号

首先,我们需要注册一个微信测试号。微信测试号与普通微信公众号的区别在于,测试号没有粉丝上限,且可以免费使用微信的所有功能。注册微信测试号的具体流程如下:

  • 打开微信公众平台官网,点击右上角的“立即注册”。
  • 选择“企业”或“个人”,并填写相关信息。
  • 完成注册后,进入微信公众平台后台,点击“设置”→“公众号设置”,即可获得测试号的AppID和AppSecret。
  1. 创建公众号模板消息

在微信公众平台后台,点击“模板消息”→“添加模板”,即可创建公众号模板消息。模板消息分为两种类型:文本模板消息和卡片模板消息。文本模板消息只能发送文本内容,而卡片模板消息可以发送图片、视频等富媒体内容。

  1. 生成access_token

access_token是微信公众号调用接口的凭证,有效期为2小时。我们可以使用AppID和AppSecret来生成access_token。生成access_token的代码如下:

const fetch = require('node-fetch');

const appId = 'YOUR_APP_ID';
const appSecret = 'YOUR_APP_SECRET';

const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appId}&secret=${appSecret}`;

fetch(url)
  .then(res => res.json())
  .then(data => {
    console.log('access_token:', data.access_token);
  })
  .catch(err => {
    console.error('Error:', err);
  });
  1. 订阅公众号消息

我们需要订阅公众号消息,才能收到公众号推送的消息。订阅公众号消息的代码如下:

const fetch = require('node-fetch');

const appId = 'YOUR_APP_ID';
const appSecret = 'YOUR_APP_SECRET';

const url = `https://api.weixin.qq.com/cgi-bin/message/subscribe/bizsvr?access_token=${accessToken}`;

fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    template_id: 'YOUR_TEMPLATE_ID',
    url: 'YOUR_URL'
  })
})
  .then(res => res.json())
  .then(data => {
    console.log('订阅成功:', data);
  })
  .catch(err => {
    console.error('Error:', err);
  });

设置小程序云开发环境

  1. 创建小程序项目

首先,我们需要创建一个小程序项目。可以在微信开发者工具中创建一个新的项目,也可以使用现有的项目。

  1. 添加云开发环境

在微信开发者工具中,点击“云开发”→“添加环境”,即可添加云开发环境。云开发环境分为两种类型:测试环境和正式环境。测试环境可以免费使用,正式环境需要付费。

  1. 安装云函数依赖

在小程序项目中,我们需要安装云函数的依赖。云函数依赖的安装方法与普通Node.js项目的依赖安装方法相同。我们可以使用npm或yarn来安装云函数依赖。

  1. 编写云函数代码

接下来,我们需要编写云函数代码。云函数代码可以用来完成各种任务,例如处理用户请求、发送消息等。云函数代码的编写方法与普通Node.js代码的编写方法相同。

  1. 部署云函数

编写好云函数代码后,我们需要将云函数代码部署到云开发环境中。部署云函数代码的方法如下:

  • 在微信开发者工具中,点击“云开发”→“云函数”,即可打开云函数管理界面。
  • 点击“新建云函数”,选择“HTTP云函数”,并填写云函数的名称和。
  • 将云函数代码复制到代码编辑器中,并点击“保存”。
  • 点击“部署”,即可将云函数代码部署到云开发环境中。

通过云函数完成消息推送

  1. 监听公众号消息

云函数可以用来监听公众号消息。监听公众号消息的代码如下:

exports.main = async (event, context) => {
  const { data } = event;
  console.log('收到公众号消息:', data);

  // 处理公众号消息

  return {
    code: 0,
    msg: 'success'
  };
};
  1. 推送消息给用户

云函数可以用来推送消息给用户。推送消息给用户的代码如下:

const fetch = require('node-fetch');

exports.main = async (event, context) => {
  const { data } = event;

  // 获取access_token

  const url = `https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=${accessToken}`;

  // 推送消息

  fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      touser: data.FromUserName,
      template_id: 'YOUR_TEMPLATE_ID',
      data: {
        keyword1: {
          value: 'value1'
        },
        keyword2: {
          value: 'value2'
        }
      }
    })
  })
    .then(res => res.json())
    .then(data => {
      console.log('推送消息成功:', data);
    })
    .catch(err => {
      console.error('Error:', err);
    });

  return {
    code: 0,
    msg: 'success'
  };
};

结语

通过本文的介绍,我们了解了如何利用云开发和微信测试公众号来搭建一个微信消息推送平台。这个平台可以将公众号中的任意模板消息、文本消息等实时推送给关注公众号的用户,而无需缴纳额外的推送服务费用。希望本文能够帮助到各位读者。