美文网首页IT类作者联盟简友广场想法
Python+思知机器人=微信聊天自动回复(还会撩妹~)

Python+思知机器人=微信聊天自动回复(还会撩妹~)

作者: 不学无术丶 | 来源:发表于2019-07-11 00:23 被阅读69次

    Q:实现原理是怎样的?
    A:当有微信好友发来消息时,自动请求思知机器人API接口,把消息转发给思知机器人,再把机器人回复的消息转发给微信好友,实现微信聊天自动回复,即所谓的微信聊天机器人~

    Q:“撩妹”前需要准备什么?
    A:开发工具Pycharm,第三方库requests、itchat,思知机器人开放平台账号(轻松注册),搞定!
    补充一下:账号的个人中心可以找到ID信息,创建机器人后在控制台可以找到Appid信息,这两个信息在后面的代码里会用到。

    Q:为什么是思知机器人而不是图灵机器人
    A:两个机器人都能实现这一操作,仅在调用API接口时略有区别。另外嘛.....图灵机器人每日调用次数有限制,充钱才能变强......而思知机器人调用无次数限制,适合非人命币玩家。还有就是思知机器人没图灵那么聪明,哈哈哈哈(如果想使用图灵机器人,对相关代码有需求的先私信吧)

    Q:还有什么要问的吗???
    .....

    对代码做如下解释,希望有助于理解:

    • 本文是以post方式请求API接口,也可使用get方式,官方文档对这两种请求的格式都有说明,可任选。
    • 代码运行后,屏幕上会出现一个二维码,微信扫码登录(为网页版微信),由于采用的是hotReload方式,所以短时间内多次运行程序只有首次需要扫码。出现start auto replaying(开始自动回复)就意味着成功了。

    下面就是具体的代码,愿你撩妹成功,开心撒花~

    # -*- coding:utf-8-*-
    import requests
    import itchat
    
    
    headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
            'Referer': 'https://robot.ownthink.com/',
    }        #  出于习惯加上的请求头,可无
    
    
    def get_data(text):
      # 请求思知机器人API所需要的一些信息  
        data = {
            "appid": "填自己的",
            "userid": "填自己的",
            "spoken": text,
        }
        return data
    
    
    def get_answer(text):
        # 获取思知机器人的回复信息
        data = get_data(text)
        url = 'https://api.ownthink.com/bot'  # API接口
        response = requests.post(url=url, data=data, headers=headers) 
        response.encoding = 'utf-8'
        result = response.json()
        answer = result['data']['info']['text']
        return answer
    
    
    @itchat.msg_register(itchat.content.TEXT)
    def text_reply(msg):
        myself = itchat.get_friends(update=True)[0]['NickName']
        friend = msg['User']['NickName']
        content = msg['Content']  # 好友发来信息的内容
        if friend != myself and friend != 'FRIEND':
            print('%s: %s' % (friend, content))
            answer = get_answer(msg['Text'])  # 收到信息时,调用思知机器人并获取机器人的回复信息
            itchat.send(answer, msg['FromUserName'])  # 将机器人的回复信息转发给该好友
            print('我:%s' % answer)
    
    
    itchat.auto_login(hotReload=True)
    itchat.run()
    

    相关文章

      网友评论

        本文标题:Python+思知机器人=微信聊天自动回复(还会撩妹~)

        本文链接:https://www.haomeiwen.com/subject/syhlkctx.html