使用itchat,itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。
聊天机器人调用的是图灵机器人接口。
在http://www.tuling123.com/ 注册账号有自己的appkey
翻译调用的是百度的翻译接口。
在百度翻译http://api.fanyi.baidu.com/api/trans/product/index 注册账号就可以有自己的appid 和secretKey
实现功能:
1,消息前有#为翻译,可中英互译
2,聊天对话
以下代码在2018年10月23日 python3下运行通过
#-*- coding:utf-8 -*-
import itchat
from itchat.content import *
import requests
import json
import hashlib
import random
def is_chinese(uchar):
if '\u4e00' <= uchar <= '\u9fff':
return True
else:
return False
@itchat.msg_register(TEXT)
def reply_text(msg):
from_text = msg['Text']
# 消息带有 ‘#’ 前缀为翻译
if from_text[0] == '#':
if is_chinese(from_text[1:]):
fromLang = 'zh'
toLang = 'en'
else:
fromLang = 'en'
toLang = 'zh'
to_text = baidu_trans_api(from_text[1:], fromLang, toLang)
itchat.send(to_text, msg['FromUserName'])
else:
to_text = tuling(from_text)
itchat.send(to_text, msg['FromUserName'])
def tuling(info):
appkey = "e5ccc9c7c8834ec3b08940e290ff1559"
url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (appkey, info)
req = requests.get(url)
content = req.text
data = json.loads(content)
answer = data['text']
return answer
def baidu_trans_api(info, fromLang, toLang):
appid = '20181022000223013' # 你的appid
secretKey = '9gQCAqD08KIRxUpPR1ra' # 你的密钥
myurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
salt = random.randint(32768, 65536)
def md5(str):
str = str.encode('utf-8') # python2 不需要此行代码
m = hashlib.md5()
m.update(str)
return m.hexdigest()
sign = appid + info + str(salt) + secretKey
sign = md5(sign)
myurl = myurl + '?appid=' + appid + '&q=' + info + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
salt) + '&sign=' + sign
response = requests.get(myurl)
try:
return response.json()["trans_result"][0]["dst"]
except:
return response.json()["error_msg"]
if __name__ == '__main__':
itchat.auto_login(hotReload=True)
itchat.run()