在视觉智能平台中想用小程序调用阿里云的垃圾分类识别接口,有微信小程序端的请求签名文件吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在视觉智能开放平台中,如果您希望通过微信小程序端调用垃圾分类识别接口(ClassifyingRubbish),需要完成以下步骤来实现请求签名和接口调用。以下是详细的解答:
在调用接口之前,您需要完成以下基础配置: - 注册阿里云账号:确保您已注册阿里云账号并开通图像识别服务。 - 创建AccessKey:生成AccessKey ID和AccessKey Secret,并确保其具备调用视觉智能开放平台API的权限。建议使用RAM用户并赋予AliyunVIAPIFullAccess
权限。 - 配置环境变量:将ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
配置为环境变量,避免直接将敏感信息嵌入代码中。
如果您的图片文件存储在本地或非上海地域的OSS中,需要先将其上传到阿里云视觉智能开放平台的官方OSS Bucket,并获取对应的URL地址。具体步骤如下: 1. 调用GetOssStsToken
接口获取临时的OSS STS Token。 2. 使用该STS Token将文件上传至指定的OSS Bucket。 3. 获取上传后的文件URL,格式类似:
http://viapi-customer-temp.oss-cn-shanghai.aliyuncs.com/LTAxxxxxxxabc/<uuid>/test.jpg
注意:该URL无法直接在浏览器中访问,但可以作为参数传递给垃圾分类识别接口。
在调用垃圾分类识别接口时,需要对请求进行签名。以下是签名流程的关键点: - 签名方法:使用HMAC-SHA1算法生成签名。 - 必要参数: - SignatureMethod
:固定为HMAC-SHA1
。 - SignatureNonce
:随机字符串,用于防止重放攻击。 - AccessKeyId
:您的AccessKey ID。 - Timestamp
:当前时间戳,格式为yyyy-MM-dd'T'HH:mm:ss'Z'
,需设置为GMT时区。 - Action
:固定为ClassifyingRubbish
。 - ImageURL
:图片的OSS URL地址。 - 签名生成规则:根据参数名的字典序排序后拼接成字符串,再通过HMAC-SHA1算法加密生成签名值。
在微信小程序中调用垃圾分类识别接口时,您可以参考以下步骤: 1. 引入SDK: - 根据文档选择适合的SDK语言(如Node.js)并安装相关依赖包。 - 确保引入的SDK包与图像识别类目(imagerecog)匹配。 2. 构造请求参数: - 设置Action
为ClassifyingRubbish
。 - 将图片的OSS URL地址赋值给ImageURL
参数。 3. 发送请求: - 使用SDK中的Client类调用对应的方法(如classifyingRubbishAdvance
)。 - 示例代码(Node.js): ```javascript const Client = require('@alicloud/viapi20210930'); const client = new Client({ accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID, accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET, endpoint: 'imagerecog.cn-shanghai.aliyuncs.com' });
const request = {
Action: 'ClassifyingRubbish',
ImageURL: 'http://viapi-customer-temp.oss-cn-shanghai.aliyuncs.com/your-image-url.jpg'
};
client.classifyingRubbishAdvance(request).then(response => {
console.log(response.body);
}).catch(err => {
console.error(err);
});
```
InvalidAction.NotFound
错误。通过以上步骤,您可以在微信小程序端成功调用阿里云的垃圾分类识别接口。如果有进一步问题,可通过钉钉群(23109592)联系阿里云技术支持团队获取帮助。