koa2通过https调用生成小程序码

举报
薛定喵君 发表于 2021/06/04 00:41:15 2021/06/04
【摘要】 记录一下nodejs下使用https调用生成小程序码的方法 # 主要思路 调用getwxacodeunlimit之后将图片buffer写入本地并调用云存储http api上传至云存储空间 # 主程序代码 server.js app.use(async (ctx, next) => { await next() ctx.set('cont...

记录一下nodejs下使用https调用生成小程序码的方法

# 主要思路

调用getwxacodeunlimit之后将图片buffer写入本地并调用云存储http api上传至云存储空间

# 主程序代码

server.js


    
  1. app.use(async (ctx, next) => {
  2. await next()
  3. ctx.set('content-type', ctx.mimeType)
  4. ctx.body = ctx.data
  5. })
  6. // 获取小程序码
  7. router.get('/getWxaCode', async (ctx, next) => {
  8. let page = ctx.request.query.page || '',
  9. token = ctx.request.header.token || ''
  10. // 获取小程序码配置
  11. const codeOptions = {
  12. method: 'POST',
  13. url:
  14. 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + token,
  15. body: {
  16. page: page,
  17. width: 230,
  18. scene: 'pc=1',
  19. },
  20. json: true,
  21. encoding: null,
  22. }
  23. let imgBuffer = await new Promise(function (resolve, reject) {
  24. request.post(codeOptions, function (error, response, body) {
  25. if (!error && response.statusCode == 200) {
  26. resolve(body)
  27. }
  28. reject(error)
  29. })
  30. })
  31. fs.writeFile(page.replace(/\//g, '-') + '.jpg', imgBuffer, function (err) {
  32. //生成图片(把buffer写入到图片文件)
  33. if (err) {
  34. console.log(err)
  35. }
  36. })
  37. // 上传至云存储
  38. const upOptions = {
  39. method: 'POST',
  40. url: 'https://api.weixin.qq.com/tcb/uploadfile?access_token=' + token,
  41. body: {
  42. env: env,//小程序云环境的ID
  43. path: page.replace(/\//g, '-') + '.jpg',
  44. },
  45. json: true,
  46. }
  47. let res = await new Promise(function (resolve, reject) {
  48. request(upOptions, function (error, response, body) {
  49. if (!error && response.statusCode == 200) {
  50. resolve(body)
  51. }
  52. reject(error)
  53. })
  54. })
  55. ctx.data = res
  56. await next()
  57. })

# 参考文档

文章来源: blog.csdn.net,作者:薛定喵君,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jsxg2009/article/details/115244357

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。