nodejs android 推送,利用Nodejs怎么实现一个微信小程序消息推送功能

利用Nodejs怎么实现一个微信小程序消息推送功能

发布时间:2021-01-20 13:55:29

来源:亿速云

阅读:92

作者:Leah

今天就跟大家聊聊有关利用Nodejs怎么实现一个微信小程序消息推送功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

小程序发送订阅的请求

需要用到上一步获取的模板Id// 小程序

入驻申请

// 入驻申请消息订阅

messageSubmit = () => {

Taro.requestSubscribeMessage({

tmplIds: ['SuGMwqyYY9cocuP-LxfElcM3a7ITaF34lKNux6EaE9'],

success: (res) => {

// 调用服务端接口,在数据库写入一条订阅记录

// this.subscribeDeal()

}

})

}

服务端发起推送

推送一般有两种手动触发、

还有就是订阅消息后,达到某个条件自动触发推送、

对于第一种情况,就直接调用微信的推送接口就好了。第二中情况稍微麻烦一点,可以加一个定时的任务,或者使用相关的队列库、等条件符合了再触发、

需要注意的地方发送推送的时候需要用户的openid,以及模板id。具体的推送内容字段,在第一步模板详情里面可以查看、

调用微信推送的接口的时候需要access_token,最好缓存一下,频繁调用会有失效的问题、

获取access_token并缓存async getAccessToken () {

const { appId, appSecert, host } = this.app.config.idolWxAConfig;

return new Promise(async (resolve) => {

const currentTime = new Date().getTime()

const redisToken = await this.app.redis.get('wxtoken').get('token') || '{access_token: "", expries_time: 0}'

const accessTokenJson = JSON.parse(redisToken)

if (accessTokenJson.access_token === '' || accessTokenJson.expries_time 

const res = await this.ctx.curl(`${host}/cgi-bin/token?appid=${appId}&secret=${appSecert}&grant_type=client_credential`, { dataType: 'json' })

if (res.data) {

accessTokenJson.access_token = res.data.access_token

accessTokenJson.expries_time = new Date().getTime() + (parseInt(res.data.expires_in) - 200) * 1000

await this.app.redis.get('wxtoken').set('token', JSON.stringify(accessTokenJson))

resolve(accessTokenJson)

}

} else {

resolve(accessTokenJson)

}

})

}

向微信发送推送请求async sendSubscribeMsg (openid) {

let requestData = {

"touser": `${openid}`,

"template_id": "SuGMwqyYY9cocuP-LxfElcM3a7ITaF34lKNux6EaE9",

"page": `/pages/certification/index`,

"data": {

"phrase2": {

"value": `审核通过`

},

"thing3": {

"value": `您的申请已经审核通过`

}

}

}

const { host } = this.app.config.idolWxAConfig;

// 获取access_toekn

const tokenJson = await this.ctx.service.wx.getAccessToken()

const res = await this.ctx.curl(`${host}/cgi-bin/message/subscribe/send?access_token=${tokenJson.access_token}

`, {

method: 'POST',

contentType: 'json',

data: requestData,

dataType: 'json'

});

if (res.data.errmsg === 'ok') {

console.log('========推送成功========')

// TODO

} else {

console.log('========推送失败========')

// TODO

}

}

看完上述内容,你们对利用Nodejs怎么实现一个微信小程序消息推送功能有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

要使用 Node.js 实现微信推送功能,你可以使用微信公众平台提供的开发接口来实现。下面是一个基本的实现步骤: 1. 注册微信公众号:前往微信公众平台注册一个公众号,并获取到对应的 AppID 和 AppSecret。 2. 配置服务器地址:在微信公众平台中,配置服务器地址,将接收微信消息和事件的 URL 地址指向你的 Node.js 服务器。 3. 搭建 Node.js 服务器:使用 Express、Koa 或其他 Node.js 框架搭建一个服务器。 4. 实现消息处理逻辑:在服务器中编写处理微信消息和事件的逻辑,根据接收到的消息类型进行相应的处理,例如关注事件、文本消息等。 5. 验证服务器有效性:在服务器中实现微信服务器验证逻辑,验证服务器的有效性,确保可以接收微信发送消息和事件。 6. 实现消息回复逻辑:根据接收到的消息类型,编写相应的回复逻辑,生成对应的 XML 格式的回复消息,并返回给微信服务器。 7. 调用微信接口:使用 Node.js 的 HTTP 请求库(如 axios、request)调用微信公众平台提供的接口,例如获取 access_token、发送模板消息等。 8. 启动服务器:运行你的 Node.js 服务器,确保服务器可以接收和处理来自微信服务器的请求。 这只是一个简单的示例,具体的实现方式和逻辑根据你的需求和业务场景可能会有所不同。请参考微信公众平台的开发文档和示例代码,以便更好地理解和使用 Node.js 实现微信推送功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值