云开发中got和request-promise

今天学习云开发如何发请求和进行数据安全监测

问题:用got请求token可以,但进行安全监测时却报错

在网上找了许多篇文章,也在群里跟别人交流过,综合了一下,找到了解决办法------用request-promise代替got

我这是获取taken时用got,进行安全检测则使用request-promise,没错同时用了两包来完成这个功能(毕竟是学习过程中,这可和微信不支持模板消息不一样,因为已经获取不了formId,实在是学不了了??)

request-promise使用参考
微信内容安全检测文档

下面展示代码:

小程序端的js

Page({

  msgCheck:function(event){
    wx.cloud.callFunction({
      name:'msg',
      data:{
        text:'完2347全dfji试3726测asad感3847知qwez到'
        // text:'你好呀'
      }
    }).then(res => {
      console.log(res)
      console.log(res.result)
      // console.log(JSON.parse(res.result))
    })
  }
})

云端的js代码

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

const got = require('got')

const rp = require('request-promise')

let appid = '你的appid;
let screct = '你的screct';
let msgCheckUrl = 'https://api.weixin.qq.com/wxa/msg_sec_check?access_token='

let tokenUrl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='+appid+'&secret='+screct

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  let tokenResponse = await got(tokenUrl)
  // console.log(tokenResponse.body)
  let token = JSON.parse(tokenResponse.body).access_token;
  console.log(token)
  var options = {
    method: 'POST',
    url: "https://api.weixin.qq.com/wxa/msg_sec_check?access_token="+token,
    body: {
        content: event.text
    },
    json: true // Automatically stringifies the body to JSON
};

//下面是got报错的代码??
// a = rp(options)
//     .then(function (parsedBody) {
//       // console.log(parsedBody)
//       //   return parsedBody
//     })
//     .catch(function (err) {
//         // POST failed...
//     });
return await rp(options)
  // let checkResponse = await got(msgCheckUrl + token,{
  //   method:'POST',
  //   headers:{
  //     'Content-Type':'application/json'
  //   },
  //   body:JSON.stringify({
  //     content:event.text
  //   })
  // });
  // return options.body
  // return token;
}

总结:去研究为什么报错,不如换一种方法去解决,前者似乎更浪费时间

原文地址:https://www.cnblogs.com/ygjzs/p/12521171.html

时间: 2024-08-22 09:57:14

云开发中got和request-promise的相关文章

将人工智能应用云开发中,“码农1号”要掀起IT界的一股浪潮

随着人工智能的高速发展,随处可见识AI技术在生活中的实践.手机中的siri,家庭中的智能音箱,在医疗诊断上进行智能病例处理,以计算机视觉为核心的城市智能安防系统,以及最近热议的无人驾驶. 最近有一款人工智能的新应用,在上线以后,就成为IT行业的关注焦点."码农1号",将AI技术应用到云开发中,在开发过程中,根据需求,机器可自动生成核心代码,只需前端工程师和设计师搭建好前端页面即可,无需再应用后端服务,就能轻松拥有开发中需要的各种后端能力. "码农1号"通过对软件应用

将人工智能应用云开发中会怎样

随着人工智能的高速发展,随处可见识AI技术在生活中的实践.手机中的siri,家庭中的智能音箱,在医疗诊断上进行智能病例处理,以计算机视觉为核心的城市智能安防系统,以及最近热议的无人驾驶. 最近有一款人工智能的新应用,在上线以后,就成为IT行业的关注焦点."码农1号",将AI技术应用到云开发中,在开发过程中,根据需求,机器可自动生成核心代码,只需前端工程师和设计师搭建好前端页面即可,无需再应用后端服务,就能轻松拥有开发中需要的各种后端能力. "码农1号"通过对软件应用

关于云开发新服务“实时数据推送”,你需要了解的全在这了!

"微信小程序工程师邓坤力带你了解如何利用千呼万唤始出来的云开发实时数据推送服务打造生动的小程序和小游戏!" 在数据库在小程序·云开发中的应用一文中,我们了解到实时数据推送作为云开发即将上线的一项新能力,主要指客户端使用官方SDK发起socket连接建立对一个集合的监听,目标集合中如果有符合过滤条件的数据发生变更,将会直接推送到建立监听的客户端. 简单来说,使用实时数据推送可以更有效率的拉取数据,帮你把你的应用变成实时有状态,场景会非常有用,比如可以用来做弹幕,做实时排名更新,做实时刷新

小程序云开发实现小程序支付功能

收集了一些小程序云开发中关于支付功能的案例 注意!小程序支付功能只有企业类型的开发者才能在上线后调用,个人开发者无法测试!!! 借助小程序云开发实现小程序支付功能(含源码) https://www.jianshu.com/p/ddccf5f95e8c 云开发支付的代码 https://developers.weixin.qq.com/community/develop/doc/000620ec5acb482103b7bf41d51804 原文地址:https://www.cnblogs.com/

新能力| 云开发静态网站托管能力正式上线

随着云开发用户的数量不断增多,开发者们对于云开发的使用程度越来越深,不少开发者提出了疑问,云开发除了支持小程序以外,还能支持其他平台么? 答案是肯定的! 云开发刚刚正式发布了静态网站托管能力,帮助开发者们解决 Web 网站托管遇见的种种问题. 为什么要使用静态网站托管能力? 云开发静态网站托管能力为开发者提供便捷.稳定.高拓展性的静态网站托管能力,帮助企业和个人一键部署网站应用,轻松为自己的业务加上稳定.高并发.快速访问等 Buff. 相比于传统的网站托管服务,云开发静态网站托管服务无需开发者自

【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OSS(https://www.aliyun.com/product/oss) 4.HTTPS(http://baike.baidu.com/view/14121.htm) 阅读目录结构 引: 一.准备工作 二.整体功能结构 三.具体实现步骤 四.关键点和问题处理 五.延伸与扩展 六.总结与思考 引:

Web开发中的域问题:PageContext,Request,Session,ServletContext(Application)

Web开发中的四个域对象(范围由小到大): page(jsp有效)  request(一次请求) session(一次会话) application(当前web应用) page域指的是pageContext. request域指的是HttpServletRequest session 域指的是HTTPSession application 域指的是ServletContext 之所以他们是域对象,原因就是他们都内置了map集合,都有setAttribute getAttribute方法.而且他们

小程序云开发向数据库中新增数据

小程序云开发向数据库中新增数据,基本操作在新建完一个云项目后都有了,右键上传部署login云函数后,就可以在模拟器中简单地操作数据库了 这是databaseGuide.js生成时就给出的代码,增删改查都需要先将相关部分的代码去掉注释. // pages/databaseGuide/databaseGuide.js const app = getApp() Page({ data: { step: 1, counterId: '', openid: '', count: null, queryRe

【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发

<ASP.NET Core 微服务实战>译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-translator/ "微服务"的概念在 2014 年正式提出之后,越来越多的团队开始用它来设计自己的业务系统,各种微服务框架和开发过程管理方法也同时兴起.不断成熟.微服务设计方法清晰地定义了各个开发团队的业务边界,微服务框架以不同的方式实现了服务之间的协作与集成,根据康威定律我们可以推导这