Python微信公众号接入图灵机器人
微信公众号配置
网上大部分都是用itchat插件。微信公众号官网上的代码复制下来格式会乱掉。对于python这样严格依赖格式的语言简直是噩梦。这里没有使用itchat,而是使用request直接post请求图灵api
微信公众平台
后台配置
Python配置
[官方文档]
安装依赖库:
1、[Python2.7] python3版本的web.py有一些bug,无法使用。安装完以后配置环境变量。用pip安装依赖库
pip install web.py
pip install hashlib
pip install time
pip install requests
主入口:Main.py
# -*- coding: utf-8 -*-
# filename: main.py
import web
from handle import Handle #引入Handle.py模块,这个模块在之后写。urls = (
'/wx', 'Handle',
)if __name__ == '__main__':
app = web.application(urls, globals())
app.run()
处理文件:Handle.py
# -*- coding=utf-8 -*-
import hashlib
import reply
import receive
import web
import robot #robot.py在之后写即可
class Handle(object):
def GET(self):
try:
data = web.input()
if len(data) == 0:
return "hello, this is handle view"
signature = data.signature
timestamp = data.timestamp
nonce = data.nonce
echostr = data.echostr
token = "微信公众号上的token值"list = [token, timestamp, nonce]
list.sort()
sha1 = hashlib.sha1()
map(sha1.update, list)
hashcode = sha1.hexdigest()
if hashcode == signature:
return echostr
else:
return ""
except Exception as Argument:
return Argument
def POST(self):
try:
webData = web.data()
print("Handle Post webdata is ", webData)
recMsg=receive.parse_xml(webData)
if isinstance(recMsg, receive.Msg):
toUser = recMsg.FromUserName
fromUser = recMsg.ToUserName
if recMsg.MsgType=='text':
content = recMsg.Content
rpyMsg= robot.get_response(content)
print rpyMsg
replyMsg = reply.TextMsg(toUser, fromUser,rpyMsg)
return replyMsg.send()
if recMsg.MsgType == 'image':
mediaId = recMsg.MediaId
replyMsg = reply.ImageMsg(toUser, fromUser, mediaId)
return replyMsg.send()
else:
print("none handler yet")
return "success"
except Exception as Argument:
print Argment
return "fail"
回复接口:reply.py
# -*- coding=utf-8 -*-
import time
class Msg(object):
def __init__(self):
pass
def send(self):
return "success"
class TextMsg(Msg):
def __init__(self, toUserName, fromUserName, content):
self.__dict = dict()
self.__dict['ToUserName'] = toUserName
self.__dict['FromUserName'] = fromUserName
self.__dict['CreateTime'] = int(time.time())
self.__dict['Content'] = content
def send(self):
XmlForm = """
<xml>
<ToUserName><![CDATA[{ToUserName}]]></ToUserName>
<FromUserName><![CDATA[{FromUserName}]]></FromUserName>
<CreateTime>{CreateTime}</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[{Content}]]></Content>
</xml>
"""
return XmlForm.format(**self.__dict)
class ImageMsg(Msg):
def __init__(self, toUserName, fromUserName, mediaId):
self.__dict = dict()
self.__dict['ToUserName'] = toUserName
self.__dict['FromUserName'] = fromUserName
self.__dict['CreateTime'] = int(time.time())
self.__dict['MediaId'] = mediaId
def send(self):
XmlForm = """
<xml>
<ToUserName><![CDATA[{ToUserName}]]></ToUserName>
<FromUserName><![CDATA[{FromUserName}]]></FromUserName>
<CreateTime>{CreateTime}</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[{MediaId}]]></MediaId>
</Image>
</xml>
"""
return XmlForm.format(**self.__dict)
注册免费的小机器人
在[图灵机器人官网](http://www.tuling123.com)注册自己的小机器人,并记住你的apikey
请求图灵机器人api接口:robot.py
# -*- coding=utf-8 -*-
import requestsKEY = "图灵机器人官网的apikey"
def get_response(msg):
apiUrl = 'http://www.tuling123.com/openapi/api'
data = {
'key' : KEY,
'info' : msg,
'userid' : '机器人名',
}
try:
r = requests.post(apiUrl, data=data).json()
return r.get('text').encode("utf-8")
except:
return msg
return msg
最后,运行主入口
python main.py
效果测试:
个人微信公众号:
Python微信公众号接入图灵机器人相关推荐
- 微信公众号接入图灵机器人
微信公众号接入图灵机器人 1. 申请一个微信公众号 这个步骤和申请一个小程序了类似,首先进入微信公众平台进行注册,关键是注册的时候是选择订阅号,还是服务号,我觉的如果你是自己做着玩的,就搞个订阅号,订 ...
- 微信公众号接入图灵机器人实现自动回复消息
2019独角兽企业重金招聘Python工程师标准>>> 1.创建图灵机器人 进入图灵机器人网址:http://www.tuling123.com/ 登录/注册,进入机器人管理,然后点 ...
- php给微信公众号接入聊天机器人程序+采坑记录
php给微信公众号接入聊天机器人程序 今天逛了下我的公众号,突然心血来潮,想添加个自动聊天功能,于是-动手-!! 主要用到的api: 图灵机器人api 青云客智能聊天机器人API 茉莉机器人API 至 ...
- 如何在微信公众号调用图灵机器人(智能聊天)
最近在研究微信公众号,有人问我可以找你的公众号聊天吗?我的第一反应是我很忙我要上班没有时间,后面就度娘了一下,发现了这个神奇的图灵机器人,可以替你跟用户聊天!是否期待你的公众号有一个萌萌哒机器人陪客人 ...
- nginx tornado php,tornado+nginx+python 微信公众号接入配置
配置环境:腾讯主机 Ubuntu Server 16.04.1 LTS 64位 需要用到的软件或者包:nginx,tornado框架 xshell6(非必需) 微信公众号测试平台:http://mp. ...
- 微信公众号接入天行机器人案例和方法
首先使用的是天行机器人: 1.接入基本原理: https://www.tianapi.com/apiview/47 申请完成后的结果如下 调用对应的接口的参数如下: http://api.tianap ...
- 微信个人公众号接入图灵机器人
打开http://www.tuling123.com/,进行注册图灵机器人 在机器人设置中添加个人公众号 人物设置里面可设置机器人基本信息 技能拓展里面可设置其功能开关闭状态. 打开公众号直接回复聊天 ...
- 微信公众号加入图灵机器人
<?php /** * wechat php test */ //define your token define("TOKEN", "公众号TOKEN" ...
- 微信公众号接入微软小冰
前言 文章首发于微信公众号:前端指南.本文是一篇有点偏向于运营层面的技术类文章,文章略长,请耐心阅读. 也就是最近这几年,人工智能行业已经变得十分的火热了.不可否认,人工智能是整个互联网行业的一种趋势 ...
- 从 0 开始最详细的微信公众号接入 AI
从 0 开始最详细的微信公众号接入 AI 文章目录 从 0 开始最详细的微信公众号接入 AI 写在前面 注册公众号 克隆到服务器 使用过微信机器人项目 未使用过微信机器人项目 更改配置文件 启动项目 ...
最新文章
- AI视觉组培训第二弹——入门篇
- SQL实现交,并,差操作
- 小白的奇幻数学课堂(part3)--你能把一张纸对折7次以上吗
- 我要去 Google 工作了
- cvsHelper--C#关于CSV文件的导入和导出以及转化
- linux保存python文件_告诉Python将.txt文件保存到Linux上的某个目录 - python
- join为什么每个字符都分割了 js_为什么 webpack4 默认支持 ES6 语法的压缩?
- cAdvisor源码分析
- java POI excel导出自定义分页问题
- python label显示图片_Python3 tkinter基础 Label imag显示图片
- esp8266 wifi库文件
- 程序猿的24个段子:栈和队列的区别是啥?
- ASP.NET编写一个简易网站
- Lempel-Ziv algorithm realization
- 解决Mscomctl.ocx丢失的问题
- python股票回测源码_Python爬虫回测股票的实例讲解
- AE中的各种报错提示的原因和解决方案
- 【MANO管理模式利弊分析】
- 模型泛化能力是什么意思
- 移动OA办公——Smobiler第一个开源应用解决方案,快来get吧
热门文章
- opencv-contrib sfm扩展模块下载安装
- Keras-Unet-语义分割
- 日系插画学习笔记(一):SAI软件基础
- 《汽车之家》字体反爬之论坛、问答、文章(新闻、车家号)及其评论爬取
- php 等额本息+等额本金生成公式
- Android 9.0 10.0 Launcher3 时钟动态图标的定制化(时钟动态图标)
- Xilinx FPGA配置clocking时钟动态相位输出
- 段落分页与换行、让段落不在二页上
- 适合WhatsApp网页版的4个最好的免费WhatsApp 群发工具
- 蝉联四年VOT冠军、发表数十篇顶会论文,卢湖川与IIAU实验室的成功之路