【微信小程序系列】微信小程序简单的实现发送订阅信息

【微信小程序系列】微信小程序简单的实现发送订阅信息

项目结构

在这里插入图片描述

两个云函数一个页面

获取模板

在这里插入图片描述

注:详细内容中的参数很重要,一会要在云函数里用

代码

app.js

// app.js
App({
  onLaunch() {
   wx.cloud.init({
   	 //环境id
     env:"XXXXXXXXXXXXXXXXXXXXXX"	//自己的云环境id
   })
  },
  globalData: {
    userInfo: null
  }
})

index.wxml

<!-- index.wxml -->
<button bindtap="getOpenid">1.获取用户openid</button>
<button bindtap="shouquan">2.获取用户授权</button>
<input placeholder="输入时间" bindinput="getTime"></input>
<button bindtap="sendOne">3.发送消息给单个用户</button>

index.js

// index.js
//在page外面定义一个变量存储用户在输入框输入的时间(用于动态赋值时间参数)
let time=''
Page({
  //获取用户openid
  getOpenid(){
    //调用云函数
    wx.cloud.callFunction({
      //云函数的名字
      name:"getopenid"
    }).then(res=>{
      console.log("获取openid成功",res)
    }).catch(res=>{
      console.log("获取openid失败",res)
    })
  },
  //获取用户授权
  shouquan(){
    wx.requestSubscribeMessage({
      //模板id,可以有多个模板参数(数组形式)
      tmplIds: ['XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'],	//自己的模板id
      success(res){
        console.log('授权成功',res)
      },
      fail(res){
        console.log('授权失败',res)
      }
    })
  },
    
    
 //使用input标签对模板参数动态赋值,这里以time参数为例
  //获取用户输入的时间
  getTime(event){
    //赋值给上面定义的变量
     time=event.detail.value
    //获取到在input里面输入的内容
     console.log(time)
  },
  //发送消息给单个用户
  sendOne(){
    //如果input里面输入为空,给出提示
    if(time==null||time==''){
      wx.showToast({
        icon:"none",
        title: '请输入时间',
      })
      //为空的话退出函数
      return
    }
      
      
    //调用编辑好的sendMsg1云函数
    wx.cloud.callFunction({
      //云函数的名字
      name:"sendMsg1",
      //传入openid
      data:{
        //把第一步获取到的openid粘过来
        openid:"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",	//获取到的openid
        startTime:time
      }
    }).then(res=>{
      console.log("发送单条消息成功",res)
    }).catch(res=>{
      console.log("发送单条消息失败",res)
    })
  }
})

云函数getopenid——index.js

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}

云函数sendMsg1——index.js

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境

// 云函数入口函数
exports.main = async (event, context) => {
  try{
    //发送订阅消息给用户
    const result = await cloud.openapi.subscribeMessage.send({
      touser:event.openid,
      //要跳转到哪个页面
      page:"pages/index/index",
      data:{	//配置模板里的参数
        phrase1:{
          value:'不通过'
        },
        thing2:{
          value:'胡乱拆迁'
        },
        date3:{	//设置动态模板参数的赋值
          value:event.startTime
        },
        thing5:{
          value:'不符合当地法规'
        }
      },
      //模板id
      templateId:'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' //写入自己的模板id
    })
    console.log(result.errCode)
    return result.errCode	//注意:必须返回result.errCode!!!否则虽然发送了但控制台会报错
  }catch(err){
    console.log(err)
    return err
  }
}

注意:对云函数编辑完一定要记得上传并部署!!!(每次都是)

真机调试效果

在这里插入图片描述

选择总是保持以上选择,不在询问的话,那么每次点击授权按钮的时候就会自动授权成功,不用再弹出授权选择的弹窗了。

如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 随着移动互联网技术的发展和用户需求的变化,【小程序名称】应运而生,以其轻量化、便捷化的设计理念为用户提供了一种全新的服务模式。作为一款无需下载安装即可使用的应用,【小程序名称】依托于微信庞大的生态系统,让用户在微信内就能轻松实现各种功能操作。 【小程序名称】的核心功能主要集中在【具体服务领域】,例如在线购物、本地生活服务、教育学习或健康管理等。它简化了传统APP繁琐的注册登录流程,支持微信一键授权登录,极大地提升了用户体验。用户通过搜索或扫描二维码,瞬间即可开启使用,享受快速加载、流畅运行的服务。 该小程序界面设计简洁明了,布局合理,易于上手。同时,其特色功能如实时更新的信息推送、个性化推荐以及社交分享功能,让用户能够及时获取所需信息,并方便地将优质内容分享至朋友圈或好友,实现信息的高效传播与互动。 【小程序名称】注重数据安全与隐私保护,严格遵守国家法律法规和微信平台的规定,确保用户数据的安全无虞。此外,其背后的开发团队持续迭代更新,根据用户反馈不断优化产品性能,提升服务质量,致力于打造一个贴近用户需求、充满活力的小程序生态。 总结来说,【小程序名称】凭借其小巧便携、快捷高效的特性,不仅节省了用户的手机存储空间,更为用户提供了无缝衔接的便利服务,是现代生活中不可或缺的一部分,真正实现了“触手可及”的智能生活新体验。只需轻点屏幕,无限精彩尽在掌握之中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tuerlechat,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值