热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python微信集成_python+微信+腾讯智能闲聊

继上一篇调用图灵机器人的玩法后,不满于每天100条的限额,于是!!!又找到了腾讯云产品-智能闲聊,

继上一篇调用图灵机器人的玩法后,不满于每天100条的限额,于是!!!又找到了腾讯云产品-智能闲聊,免费!无限额!

申请智能闲聊

1.构建调用api文件:

由于wxpy库没有集成腾讯智能闲聊的api,我们需要自己配置接口,所以会比调用图灵机器人显得麻烦。上python,下面是api.py的内容,主要用于向腾讯云发送请求,并获取回复内容,相当于一个调用api。如下api.py:

###api.py###

import hashlib

import time

import requests

import random

import string

from urllib.parse import quote

def curlmd5(src):

m = hashlib.md5(src.encode('UTF-8'))

return m.hexdigest().upper() # 将得到的MD5值所有字符转换成大写

def get_params(plus_item): #用于返回request需要的data内容

global params

t = time.time() #请求时间戳(秒级),(保证签名5分钟有效)

time_stamp=str(int(t))

nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 10)) # 请求随机字符串,用于保证签名不可预测

app_id='2135462408' # 修改成自己的id

app_key='w3Lv6zsb95T89fay' # 修改成自己的key

params = {'app_id':app_id,

'question':plus_item,

'time_stamp':time_stamp,

'nonce_str':nonce_str,

'session':'10000'

}

sign_before = ''

for key in sorted(params): #要对key排序再拼接

sign_before += '{}={}&'.format(key,quote(params[key], safe='')) # 拼接过程需要使用quote函数形成URL编码

sign_before += 'app_key={}'.format(app_key) # 将app_key拼接到sign_before后

sign = curlmd5(sign_before)

params['sign'] = sign # 对sign_before进行MD5运算

return params #得到request需要的data内容

def get_content(plus_item):

global payload,r

url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat" # 聊天的API地址

plus_item = plus_item.encode('utf-8')

payload = get_params(plus_item)

r = requests.post(url,data=payload) #带参请求api地址

result=r.json()["data"]["answer"]

return result #获得返回内容

2.与智能闲聊进行聊天

终于将前提基础工作完成了,调用api构建好后,调用智能闲聊也就很简单了,调用wxpy库,初始化和构建自动发送、回复函数和上一章都一样。为了简化工作,本例中只实现自动回复功能,也是最常用的功能。依然上ai.py的代码,用于聊天。ai.py如下:

from wxpy import *

from ai import * #导入上一步构建的ai.py文件

bot = Bot()

friend = bot.friends().search('AIbot')[0]

@bot.register(friend)

def auto_reply(msg):

a=msg.text

answer=get_content(a)

if answer=='': #防止返回内容为空

for i in range(2):

time.sleep(2)

answer=get_content(a)

if answer!='' and answer!="emmmm,我不是很懂你的意思":

break

else:

answer="emmmm,我不是很懂你的意思"

return '[Stephen] {} '.format(answer)

bot.join()

由于访问腾讯api的时候,偶尔会返回空内容,为了避免这种情况,当返回空时,隔2s再请求一次,这般重复3次,如果依然返回空,则自动将返回值设为"emmmm,我不是很懂你的意思"。

3.效果展示:

ps:我已将智能闲聊的名字设为了"Stephen",上图最重要:

腾讯智能闲聊的智能化程度也挺高,日常闲聊也没有太大问题,有些回答甚至比图灵机器人还要讨喜,各有千秋吧。最关键的是免费!不限额!

尽管wxpy功能很强大,但是部分用户无法登陆微信网页版,也就无法体验wxpy的服务了,可以说是很可惜了!

如有错误或建议,请在评论处指出!



推荐阅读
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文介绍了 Python 中的基本数据类型,包括不可变数据类型(数字、字符串、元组)和可变数据类型(列表、字典、集合),并详细解释了每种数据类型的使用方法和常见操作。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 本文全面解析了 Python 中字符串处理的常用操作与技巧。首先介绍了如何通过 `s.strip()`, `s.lstrip()` 和 `s.rstrip()` 方法去除字符串中的空格和特殊符号。接着,详细讲解了字符串复制的方法,包括使用 `sStr1 = sStr2` 进行简单的赋值复制。此外,还探讨了字符串连接、分割、替换等高级操作,并提供了丰富的示例代码,帮助读者深入理解和掌握这些实用技巧。 ... [详细]
  • 文章目录python包-requests关于requests包安装和使用pythonrequests请求超时设置工作中遇到的常见问题整理访问https网站,报错cer ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • 本文详细介绍了如何使用Python的多进程技术来高效地分块读取超大文件,并将其输出为多个文件。通过这种方式,可以显著提高读取速度和处理效率。 ... [详细]
  • 在JUnit测试框架中,确保@Test注解的方法按特定顺序执行是常见的需求。本文总结了三种实现这一目标的策略。首先,介绍了通过方法名称排序来控制执行顺序的基本方法。其次,推荐了一种利用依赖管理插件的方式,这种方法更为灵活且易于维护。最后,探讨了使用第三方库如TestNG或Jupiter扩展来实现更复杂的顺序控制。每种方法都有其适用场景和优缺点,开发者可以根据具体需求选择最合适的方案。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 体积小巧的vsftpd与pureftpd Docker镜像在Unraid系统中的详细配置指南:支持TLS加密及IPv6协议
    本文详细介绍了如何在Unraid系统中配置体积小巧的vsftpd和Pure-FTPd Docker镜像,以支持TLS加密和IPv6协议。通过这些配置,用户可以实现安全、高效的文件传输服务,适用于各种网络环境。配置过程包括镜像的选择、环境变量的设置以及必要的安全措施,确保了系统的稳定性和数据的安全性。 ... [详细]
  • 深入解析 OpenSSL 生成 SM2 证书:非对称加密技术与数字证书、数字签名的关联分析
    本文深入探讨了 OpenSSL 在生成 SM2 证书过程中的技术细节,重点分析了非对称加密技术在数字证书和数字签名中的应用。非对称加密通过使用公钥和私钥对数据进行加解密,确保了信息传输的安全性。公钥可以公开分发,用于加密数据或验证签名,而私钥则需严格保密,用于解密数据或生成签名。文章详细介绍了 OpenSSL 如何利用这些原理生成 SM2 证书,并讨论了其在实际应用中的安全性和有效性。 ... [详细]
  • Python默认字符解析:深入理解Python中的字符串处理
    在Python中,字符串是编程中最基本且常用的数据类型之一。尽管许多初学者是从C语言开始接触字符串,通常通过经典的“Hello, World!”程序入门,但Python对字符串的处理方式更为灵活和强大。本文将深入探讨Python中的字符串处理机制,包括字符串的创建、操作、格式化以及编码解码等方面,帮助读者全面理解Python字符串的特性和应用。 ... [详细]
author-avatar
港乄漫天地
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有