最近有一个项目需要调用阿里云小蜜,我就拿python调用了一下,然后在官网居然没有找到很好的sample code。就只能自己硬着头皮写一下啦

import base64
import urllib.parse
import hmac
from hashlib import sha1
import requests
import uuid
import time
import hmac,ssl
ALIYUN_ACCESS_KEY_ID="your id"
ALIYUN_ACCESS_KEY_SECRET="your secret"# 解决 访问ssl网站证书的问题
try:_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:# Legacy Python that doesn't verify HTTPS certificates by defaultpass
else:# Handle target environment that doesn't support HTTPS verificationssl._create_default_https_context = _create_unverified_https_contextD = {'Format':'JSON','Version':'2017-10-11','SignatureMethod':'HMAC-SHA1'}
timestamp = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
D['SignatureNonce']=str(uuid.uuid1())
D['SignatureVersion']=1.0
D['AccessKeyId']=ALIYUN_ACCESS_KEY_ID
D['Timestamp']=timestampdef percent_encode(encodeStr):encodeStr = str(encodeStr)res = urllib.parse.quote(encodeStr)res = res.replace('+', '%20')res = res.replace('*', '%2A')res = res.replace('%7E', '~')return resdef sign(parameters):sortedParameters = sorted(parameters.items(), key=lambda parameters: parameters[0])print(sortedParameters)canonicalizedQueryString = ''for (k, v) in sortedParameters:canonicalizedQueryString += '&' + percent_encode(k) + '=' + percent_encode(v)stringToSign = 'GET&%2F&' + percent_encode(canonicalizedQueryString[1:])  # 使用get请求方法bs = ALIYUN_ACCESS_KEY_SECRET + '&'bs = bytes(bs, encoding='utf8')stringToSign = bytes(stringToSign, encoding='utf8')h = hmac.new(bs, stringToSign, sha1)# 进行编码signature = base64.b64encode(h.digest()).strip()return signatureD['Action']="Chat"
D['InstanceId']="your instance id" #你阿里云的机器人实例id
D['Utterance']="电脑黑屏了怎么办"
D['Signature'] = sign(D)sortedParameters = sorted(D.items(), key=lambda D: D[0])
# print(D["Signature"])
# print(sortedParameters)url = 'https://chatbot.cn-shanghai.aliyuncs.com/?' + urllib.parse.urlencode(sortedParameters)
print(url)
r = requests.get(url)
print(r.text)

运行成功了,我的输出为:

{"SessionId":"672d532e9e1e40c09563828f54ee5b05","Messages":[{"Text":{},"Type":"Knowledge","Knowledge":{"Id":"74952","Content":"亲,先确认一下是否是没有接入电源,电量过低导致的黑屏,如果不是请到IT服务台报修,IT管理员会根据检测情况处理哦。","AnswerSource":"KnowledgeBase","Title":"电脑黑屏了怎么办","Summary":"亲,先确认一下是否是没有接入电源,电量过低导致的黑屏,如果不是请到IT服务台报修,IT管理员会根据检测情况处理哦。"}}],"MessageId":"0bb0e211d48d42acaf7f6e1924f7482c","RequestId":"D241002A-FADE-4C86-8180-9CD0B857017E"}

参考文献

[1].会话.https://help.aliyun.com/document_detail/60463.html?spm=a2c4g.11186623.6.555.rdcox6

[2].python3 获取阿里云ECS 实例及监控的方法.https://www.cnblogs.com/IPYQ/p/5996868.html

[3].签名机制.https://help.aliyun.com/document_detail/60762.html?spm=a2c4g.11186623.6.553.lFcX1e

python3:调用阿里云小蜜代码示例相关推荐

  1. 阿里云小蜜获评智能客服技术产品/解决方案大类推荐品牌

    摘要: 7月24日,由客户世界机构主办,中国呼叫中心与电子商务发展研究院.全球呼叫中心产业联盟联合支持的客户世界• 洞察者2018北京论坛在丽景湾国际酒店圆满举行.作为全球领先的智能客服产品及方案提供 ...

  2. 阿里云小蜜PHP实例代码

    云小蜜 阿里云 登陆地址:https://signin.aliyun.com/login.htm 文档地址:<https://help.aliyun.com/product/59495.html ...

  3. 对话系统 | (3) 阿里云小蜜对话机器人背后的核心算法

    原文地址 分享嘉宾:唐呈光 阿里巴巴 算法专家 编辑整理:刘汝洲 内容来源:阿里小蜜 & DataFun AI Talk 出品社区:DataFun 阿里小蜜智能对话开发平台是智能服务事业部推出 ...

  4. 调用阿里云人脸识别接口示例

    下面我为大家展示一下我调用阿里云人脸识别接口的示例 首先说下开发环境,springboot 开发的 org.apache.commons.codec.binary.Base64; 这个主要是用来进行b ...

  5. 阿里云小蜜优势与应用场景

    云小蜜(Intelligent Service Robot)是一款基于自然语言处理(NLP)和人工智能(AI)技术提供智能会话能力的云服务.无需亲自掌握NLP.AI等技术,您就可以使用云小蜜创建自己的 ...

  6. api调用实例python_调用阿里云API 的demo示例(java/python)

    Java 示例 // 创建DefaultAcsClient实例并初始化 DefaultProfile profile = DefaultProfile.getProfile(vo.getAliRegi ...

  7. java调用云小蜜示例教程(调用sdk版本)

    最近又用java写了云小蜜的调用教程,这里总结一下,首先maven依赖为: <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-j ...

  8. python 验证码识别 阿里云_python3调用阿里云图像识别OCR-实现验证码识别

    python3 调用阿里云图像识别OCR-验证码识别 前言 使用别人的接口,是需要在别人的平台上创建应用的. 所以,我们要先去 购买地址:(放心,免费的.) https://market.aliyun ...

  9. python如何调用阿里云接口_python 调用阿里云云解析api添加记录

    首先安装阿里云SDK pip install aliyun-python-sdk-core pip install aliyun-python-sdk-alidns 可以配合jenkins传递参数 # ...

最新文章

  1. 汉字转换成全拼的拼音
  2. 连续三天说一个事情 : 信号转换
  3. 安装phpcms时出现Warning: ob_start(): output handler \'ob_gzhandler\' conflicts with \'zlib
  4. 实时手势识别 【手部跟踪】Mediapipe中的hand
  5. 回文质数(洛谷P1217题题解,Java语言描述)
  6. Python——PyCharm常用快捷键
  7. ofo在北京上线有桩模式,违规最高罚20元
  8. c++工作笔记002---C++ 类成员访问运算符 - 的重载
  9. 机器学习中的基本概念
  10. java 包依赖_java命令执行带jar包依赖的文件执行不了
  11. 阿里云容器服务Kubernetes之Jenkins X(2)-自动化CICD实践篇
  12. 雪球网 json 获取
  13. 东西湖职业技术学校计算机,武汉东西湖职业技术学校中专
  14. lightGBM简述
  15. FineReport缺失字体检测
  16. win11系统中文名修改英文名,以及用户文件改名
  17. Java课程设计-图书借阅管理系统
  18. 计算机修改人类记忆曲线,Memory Helper - 艾宾浩斯遗忘曲线记忆助手
  19. 纯CSS实现弹幕效果
  20. Mac 远程连接 Windows 桌面工具 Parallels Client 使用教程

热门文章

  1. 2020的“小众”播客能否迎来2021的“大众”狂欢
  2. 按键精灵判断与循环的使用
  3. 利用API实现全国失信名单查询
  4. intellij idea 激活码 activate code 绝对有效,简单易操作
  5. 联想r9000p电脑外接显示屏黑屏问题解决
  6. wepy2.0点击事件bug
  7. Word的样式库在 选项卡中_“页眉页脚如何设置?”方法很多种,这种最简单|Word页眉页脚...
  8. python输入两个字符串连接起来_python字符串连接的多种方法
  9. 注销QQ和微信的方法
  10. 欧洲杯第四周的比赛闲聊