微信小程序如何调用百度api(以植物识别功能为例)

目录

    • 调用前准备
    • 正式调用
    • 调用结果

调用前准备

打开百度智能云官网,点击用户中心
微信小程序如何调用百度api(以植物识别功能为例)_第1张图片
微信小程序如何调用百度api(以植物识别功能为例)_第2张图片
微信小程序如何调用百度api(以植物识别功能为例)_第3张图片
名称和描述都没有特殊要求,点击创建
微信小程序如何调用百度api(以植物识别功能为例)_第4张图片
点击查看应用详情我们会看到百度给予的API Key和Serect Key,你能通过这两个Key获取token
微信小程序如何调用百度api(以植物识别功能为例)_第5张图片

token的获取方法:百度鉴权认证机制

正式调用

编写调用api,并同时实现选取图片和识别的功能的函数

getToken(res) {           //获取账号权限
    wx.request({            //请求百度api接口
      url: 'https://aip.baidubce.com/oauth/2.0/token',
      data: {               //请求时传送我们的账号信息进行认证
        grant_type: 'client_credentials',
        client_id: '**************',//APIKey
        client_secret: '****************',//SecretKey
      },
      success(res) {
        console.log(res.data.access_token)
        let token = res.data.access_token   //保存token,代表你权限的信息
        //console.log('选择照片')
        wx.chooseImage({              //选取照片
          count: 1,
          sizeType: ['original', 'compressed'],
          sourseType: ['album', 'camera'],//本地或拍照选取
          success(res) {
            console.log(res)
            let url = res.tempFilePaths[0]		//获取图片地址
            wx.setStorageSync("res_imgurl", url);//缓存照片
            //图片转码为base64编码形式
            wx.getFileSystemManager().readFile({
              
              filePath: url,
              encoding: 'base64',
              success(res) {
                //console.log('上传照片成功准备转码')
                let base64 = res.data     //保存转码后数据

                //console.log('开始识别')
                wx.request({        //请求识花接口
                  url: 'https://aip.baidubce.com/rest/2.0/image-classify/v1/plant',
                  header: {
                    "Content-type": "application/x-www-form-urlencoded",//决定用哪种post请求,是固定的
                  },
                  method: 'post',   //请求固定为post请求
                  data: {           //请求时需要上传的数据
                    image: base64,	//图片编码数据
                    access_token: token,//获取的token权限
                    baike_num: 1	//想得到的百度百科数量
                  },
                  success: function (res) {
                    //console.log('识别成功跳转页面')
                    console.log(res.data.result)//控制台输出识别后得到的数据中的结果
                  }
                })
              }
            })
          }
        })
      }
    })
  },

调用结果

触发getToken函数得到以下结果
微信小程序如何调用百度api(以植物识别功能为例)_第6张图片

你可能感兴趣的:(前端,小程序,js,javascript)