第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 微信小程序调用阿里OCR识别

微信小程序调用阿里OCR识别

时间:2019-05-30 23:32:56

相关推荐

微信小程序调用阿里OCR识别

准备工作

在使用内容检测API之前,需要先注册阿里云账号,添加AccessKey并开通内容安全。

操作步骤:

访问阿里云官网,注册阿里云账号。如果已有阿里云账号,请跳过此步骤。访问内容安全产品开通页面,单击立即开通,正式开通服务。访问AccessKey管理页面,管理您的AccessKey ID和AccessKey Secret。

说明: AccessKey是您使用内容安全API时用到的密钥,拥有您的账号的完整权限。请您妥善保管它们,避免泄露,并定期更换您的AccessKey。

详细内容访问内容检测API开发准备

开发

引入加密库

import crypto from './crypto-js/index.js';

生成uuid

uuid() {var s = [];var hexDigits = "0123456789abcdef";for (var i = 0; i < 36; i++) {s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);}s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01s[8] = s[13] = s[18] = s[23] = "-";var uuid = s.join("");return uuid;}

调用微信API获取图像

camera(){var that = this;wx.chooseImage({count: 1, // 最多可以选择的图片张数,默认9/* sizeType: ['original', 'compressed'], */// 可以指定是原图还是压缩图,默认二者都有sizeType: ['compressed'],sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: function (res) {// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片console.log("获取图片", res)pressImage({src: res.tempFilePaths[0], // 图片路径quality: 10, // 压缩质量success: function (result) {/* that.uploadImage(that, result.tempFilePath) */console.log('图片路径',result)// 调用阿里云APIthat.imageScan()}})}})}

阿里云API调用

imageScan(){var that = this;var clientInfo = {"ip":"127.0.0.1"};// 请求体,根据需要调用相应的算法let requestBody = JSON.stringify({bizType:'Green',scenes:['porn'],tasks:[{'dataId':that.uuid(),'url':'https://xxx.png'}]});// 请求头let requestHeaders = {'Accept':'application/json','Content-Type':'application/json','Content-MD5':crypto.enc.Base64.stringify(crypto.MD5(requestBody)),'Date':new Date().toUTCString(),'x-acs-version':'-01-12','x-acs-signature-nonce':that.uuid(),'x-acs-signature-version':'1.0','x-acs-signature-method':'HMAC-SHA1'}// 对请求的签名let signature = []signature.push('POST\n');signature.push('application/json\n');signature.push(requestHeaders['Content-MD5'] + '\n');signature.push('application/json\n');signature.push(requestHeaders['Date'] + '\n');signature.push('x-acs-signature-method:HMAC-SHA1\n');signature.push('x-acs-signature-nonce:' +requestHeaders['x-acs-signature-nonce'] + '\n');signature.push('x-acs-signature-version:1.0\n');signature.push('x-acs-version:-01-12\n');signature.push('/green/image/scan?clientInfo=' + JSON.stringify(clientInfo));console.log("加密签名",signature.join(''))// 对签名进行HmacSHA1加密 nodejs方式:crypto.createHmac('sha1', accessKeySecret).update(signature.join('')).digest().toString('base64');let hmacsha1 = crypto.HmacSHA1(signature.join(''),that.data.AccessKeySecret)let authorization = crypto.enc.Base64.stringify(hmacsha1);console.log("签名加密后", authorization)requestHeaders.Authorization = "acs" + " " + that.data.AccessKeyId + ":" + authorization;// 发送HTTP请求wx.request({url: encodeURI('-/green/image/scan?clientInfo=' + JSON.stringify(clientInfo)),method:'POST',data:requestBody,header:requestHeaders,success(res){console.log("请求成功",res)},fail(err){console.log("请求失败",err)}})}

参考

Nodejs版参考示例下载

阿里云检测服务API参考

阿里云API 错误中心

单击下载内容安全第三方SDK(c#、c++、nodejs、python(3.5)、go)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。