微信小程序使用京东云实现垃圾分类图片识别垃圾分类

简介: 微信小程序使用京东云实现垃圾分类图片识别垃圾分类

在做微信小程序垃圾分类功能时,有用到拍照识别语音识别和文字识别,文字识别直接传参,语音识别需要将语音转化成文字,图片识别需要将图片转化成base64格式传参,通过调用京东云的接口来返回垃圾信息。具体实现我用了云函数来实现,具体步骤如下(无坑一步一步跟着走绝对能运行)

一、构建云函数

// 云函数入口文件
const cloud = require('wx-server-sdk')
const TcbRouter = require('tcb-router');
const axios = require('axios');
const {
  Context,
  Signer
} = require('jdcloud-sdk-signer')
cloud.init({
  env: ""
})
let db = cloud.database()
const _ = db.command
/**
 * 因为京东neuhub平台服务器崩溃,所以改用京东云垃圾分类API
 */
/**
 * 京东API配置
 * 垃圾分类api
 * 
 * 申请地址:https://www.jdcloud.com/cn/products/garbage-classification
 */
let jdaiyuncofig = {
  accessKeyId: 'JDC_F0904F0F3B595D5B7221FEAw3802CF8',
  secretAccessKey: 'DEA78F8481A2C51112337F2F89BD3BA9F0B'
//这里需要自己去京东云申请自己的密钥,上面的密钥是假的
}
function getAuthorization() {
  let ctx = new Context('nativecontainer.internal.cn-north-1.jdcloud-api.com', '/jdai/*', 'POST', null, '', 'cn-north-1')
  ctx.buildNonce()
  let signer = new Signer(ctx, jdaiyuncofig)
  let auth = signer.sign(new Date())
  return auth
}
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  let {
    APPID,
    OPENID
  } = wxContext
  const app = new TcbRouter({
    event
  })
  //提供通过文本进行垃圾分类查询的能力
  app.router('garbageTextSearch', async (ctx, next) => {
    let {
      text,
      devIntegral
    } = event
    let auth = getAuthorization()
    ctx.body = axios.post(`https://aiapi.jdcloud.com/jdai/garbageTextSearch`, {
      text: text,
      cityId: '310000'
    }, {
      headers: {
        'Content-Type': 'application/json',
        'Authorization': auth
      }
    }).then(res => {
      return res.data
    })
  })
    //获取用户openID
    app.router('openId', async (ctx, next) => {
        ctx.body = {
          openId: OPENID
        }
      })
      return app.serve()
    }

构建云函数时相应的插件如下,保存后通过工具=》构建npm来进行构建

{
    "name": "api",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "",
    "license": "ISC",
    "dependencies": {
        "axios": "^0.20.0",
        "debug": "^4.3.1",
        "jdcloud-sdk-signer": "^2.0.2",
        "md5-node": "^1.0.1",
        "qs": "^6.9.4",
        "tcb-router": "^1.1.2",
        "wx-server-sdk": "~2.5.3"
    }
}


相关文章
|
6月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的城市垃圾分类管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的城市垃圾分类管理系统附带文章源码部署视频讲解等
69 13
|
6月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的垃圾分类小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的垃圾分类小程序的详细设计和实现(源码+lw+部署文档+讲解等)
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的社区垃圾分类管理平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的社区垃圾分类管理平台附带文章和源代码部署视频讲解等
38 3
|
6月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的垃圾分类回收系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的垃圾分类回收系统附带文章源码部署视频讲解等
50 0
|
7月前
|
JavaScript Java 测试技术
基于微信的垃圾分类小程序+springboot+vue.js附带文章和源代码设计说明文档ppt
基于微信的垃圾分类小程序+springboot+vue.js附带文章和源代码设计说明文档ppt
53 0
|
小程序 前端开发 Java
毕业设计-基于微信小程序的智能垃圾分类回收系统
毕业设计-基于微信小程序的智能垃圾分类回收系统
|
7月前
|
小程序 JavaScript Java
基于微信小程序的垃圾分类小程序的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的垃圾分类小程序的设计与实现(源码+lw+部署文档+讲解等)
|
JSON 小程序 JavaScript
微信小程序毕业设计之垃圾分类小程序(一)
微信小程序毕业设计之垃圾分类小程序(一)
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
682 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
742 1
下一篇
DataWorks