公众号获取用户手机号_koa框架实现微信公众号回复用户小程序卡片

点击上方 蓝字可以订阅哦

基于koa框架实现微信公众号会话窗口中回复给用户小程序卡片

开发准备

  • 一个认证过的公众号

  • 公众号后台关联好小程序

  • 公众号后台配置IP白名单

  • 测试粉丝在48h内与公众号有交互

获取全局token

1.使用微信公众号的appid及secrect获取token

// 获取全局tokenrouter.get('/token', async (ctx, next) => {  try {    let appid = ''    let secret = ''    let opts = {      url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + appid + '&secret=' + secret    }    let res = await rp(opts)    res = JSON.parse(res)    let token = res.access_token    ctx.data = { token: token }  } catch (e) {    console.log(e)  }  await next()})

2.因为发送小程序卡片需要图片ID即thumbmediaid,所以需要使用以下接口新增临时素材获取media_id

https://api.weixin.qq.com/cgi-bin/media/upload?access_token=TOKEN&type=image

3.发送小程序卡片消息(本示例使用了个人博客小程序)

router.get('/sendxcx', async (ctx, next) => {

let token = ctx.request.query.token,

params = {

touser: '',

msgtype: 'miniprogrampage',

miniprogrampage: {

title: '',

appid: '', // 小程序appid

pagepath: '', // 小程序页面路径

thumb_media_id:

'', // 填入获取的素材media_id

},

}

let opts = {

method: 'post',

body: JSON.stringify(params),

uri:

'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=' +

token,

}

let res = await rp(opts)

ctx.data = res

await next()

})

演示效果

bc304bf3a715552c934f12ac5d04a7f4.png

注意事项

  • 素材管理接口对所有认证的订阅号和服务号开放。

  • 本示例使用的是临时素材,有效时间为3天。

参考资料

1.公众号新增临时素材:

https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html

2.小程序发送客服消息给用户:

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/customer-message/customerServiceMessage.send.html#method-http

推荐阅读

(点击标题可跳转阅读)

微信公众号接入AI聊天机器人

微信公众号发送实况天气预报

koa2实现微信公众号关注后自动回复消息

koa2实现的刷新微信全局access_token服务

觉得这篇文章有帮助?请转发给更多人

关注 极客之路 加星标每天进步一点点

cacfd50b4fe4cd81e8c91efb5257e485.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值