Python itchat模块的使用,利用图灵机器人进行微信消息自动回复

系统 1481 0

一、下载安装itchat模块

Python itchat模块的使用,利用图灵机器人进行微信消息自动回复_第1张图片

二、小实验:获取微信好友头像信息

这需要用itchat模块中的一个方法

          
            itchat
            
              .
            
            get_friends
            
              (
            
            
              )
            
            
              #获取微信所有微信好友信息
            
          
        

现在我们导入itchat,打印一下,看看好友信息有哪些字段数据

          
            
              import
            
             itchat

            
              #itchat.login()生成一个登陆二维码,此方式每次程序运行都需要扫码
            
            
itchat
            
              .
            
            auto_login
            
              (
            
            hotReload
            
              =
            
            
              True
            
            
              )
            
            
              #持续登录,只用扫一次二维码即可
            
            
friends 
            
              =
            
             itchat
            
              .
            
            get_friends
            
              (
            
            
              )
            
            
              #获取微信所有好友信息
            
            
              for
            
             i 
            
              in
            
             friends:
	
            
              print
            
            (i)

          
        

这里只拿出几个常用字段说明:
UserName:微信号唯一标识符
NickName:微信名
HeadImgUrl:头像url
RemarkName:备注
Signature:签名
Province:省份
City:城市

从好友信息对象中获取头像图片并存储:

          
            
              import
            
             itchat

            
              #itchat.login()生成一个登陆二维码,此方式每次程序运行都需要扫码
            
            
itchat
            
              .
            
            auto_login
            
              (
            
            hotReload
            
              =
            
            
              True
            
            
              )
            
            
              #持续登录,只用扫一次二维码即可
            
            
friends 
            
              =
            
             itchat
            
              .
            
            get_friends
            
              (
            
            
              )
            
            
              #获取微信所有好友信息
            
            
              print
            
            
              (
            
            friends
            
              )
            
            
              for
            
             i 
            
              in
            
             friends
            
              :
            
            
    img 
            
              =
            
             itchat
            
              .
            
            get_head_img
            
              (
            
            userName
            
              =
            
            i
            
              [
            
            
              'UserName'
            
            
              ]
            
            
              )
            
            
              #获取好友头像
            
            
    path 
            
              =
            
             r
            
              'C:\Users\Administrator\PycharmProjects\untitled\Test\微信好友:'
            
            
              +
            
            i
            
              [
            
            
              'RemarkName'
            
            
              ]
            
            
              +
            
            
              '.jpg'
            
            
              with
            
            
              open
            
            
              (
            
            path
            
              ,
            
            
              'wb'
            
            
              )
            
            
              as
            
             f
            
              :
            
            
        f
            
              .
            
            write
            
              (
            
            img
            
              )
            
          
        

三、使用图灵机器人实现微信自动回复

进入图灵机器人官方网站创建机器人
Python itchat模块的使用,利用图灵机器人进行微信消息自动回复_第2张图片
记录机器人的apikey
进入帮助中心,找到apiv2.0接入教程,里面会有详细的对接教程及一些参数的说明
Python itchat模块的使用,利用图灵机器人进行微信消息自动回复_第3张图片
然后就可以开始通过python itchat和图灵机器人进行对接,实现自动回复消息

          
            
              import
            
             itchat

            
              import
            
             requests

            
              import
            
             json


            
              def
            
            
              get_response
            
            
              (
            
            msg
            
              )
            
            
              :
            
            
    url 
            
              =
            
            
              'http://openapi.tuling123.com/openapi/api/v2'
            
            
    data 
            
              =
            
            
              {
            
            
              "reqType"
            
            
              :
            
            
              0
            
            
              ,
            
            
              "perception"
            
            
              :
            
            
              {
            
            
              "inputText"
            
            
              :
            
            
              {
            
            
              "text"
            
            
              :
            
             msg
        
            
              }
            
            
              ,
            
            
              "inputImage"
            
            
              :
            
            
              {
            
            
              "url"
            
            
              :
            
            
              "imageUrl"
            
            
              }
            
            
              ,
            
            
              "selfInfo"
            
            
              :
            
            
              {
            
            
              "location"
            
            
              :
            
            
              {
            
            
              "city"
            
            
              :
            
            
              "北京"
            
            
              ,
            
            
              "province"
            
            
              :
            
            
              "北京"
            
            
              ,
            
            
              "street"
            
            
              :
            
            
              "信息路"
            
            
              }
            
            
              }
            
            
              }
            
            
              ,
            
            
              "userInfo"
            
            
              :
            
            
              {
            
            
              "apiKey"
            
            
              :
            
            
              "图灵机器人apikey号"
            
            
              ,
            
            
              "userId"
            
            
              :
            
            
              "what"
            
            
              #userID随便填一个字符
            
            
              }
            
            
              }
            
            
    data 
            
              =
            
             json
            
              .
            
            dumps
            
              (
            
            data
            
              )
            
            
              #把data变成json格式
            
            
    response 
            
              =
            
             requests
            
              .
            
            post
            
              (
            
            url
            
              ,
            
            data
            
              =
            
            data
            
              )
            
            
              .
            
            json
            
              (
            
            
              )
            
            
              #打印出来是个字典
            
            
              #print(response['results'][0]['values']['text'])#从数据中取出机器人回复的消息文字
            
            
              return
            
            
              (
            
            response
            
              [
            
            
              'results'
            
            
              ]
            
            
              [
            
            
              0
            
            
              ]
            
            
              [
            
            
              'values'
            
            
              ]
            
            
              [
            
            
              'text'
            
            
              ]
            
            
              )
            
            
              #get_response('你有什么事吗')#模拟好友发送信息
            
            
              #python3中可以使用json模块来对json数据进行编解码
            
            
              #它包含了两个函数:
            
            
              #json.dumps()对数据进行编码
            
            
              #json.loads()对数据进行解码
            
            
itchat
            
              .
            
            auto_login
            
              (
            
            hotReload
            
              =
            
            
              True
            
            
              )
            
            
              #保持登录
            
            
@itchat
            
              .
            
            msg_register
            
              (
            
            itchat
            
              .
            
            content
            
              .
            
            TEXT
            
              )
            
            
              #装饰器,对下面的函数添加新功能
            
            
              def
            
            
              auto_reply
            
            
              (
            
            message
            
              )
            
            
              :
            
            
              #print(message)
            
            
    only_reply_info 
            
              =
            
            
              '哈哈哈,你又上当了!'
            
            
              #设置指定回复消息
            
            
    friend_info 
            
              =
            
             message
            
              [
            
            
              'Text'
            
            
              ]
            
            
              #获取好友发送的文本信息
            
            
    friend_id 
            
              =
            
             message
            
              [
            
            
              'FromUserName'
            
            
              ]
            
            
              #获取好友id
            
            
    reply_info 
            
              =
            
             get_response
            
              (
            
            friend_info
            
              )
            
            
              #将好友信息发送给图灵机器人
            
            
    only_friend_info 
            
              =
            
             itchat
            
              .
            
            search_friends
            
              (
            
            name
            
              =
            
            
              '微信备注名'
            
            
              )
            
            
              #获取指定好友发送的消息
            
            
              if
            
             friend_id 
            
              ==
            
             only_friend_info
            
              [
            
            
              0
            
            
              ]
            
            
              [
            
            
              'UserName'
            
            
              ]
            
            
              :
            
            
        itchat
            
              .
            
            send
            
              (
            
            msg
            
              =
            
            only_reply_info
            
              ,
            
             toUserName
            
              =
            
            friend_id
            
              )
            
            
              #规定指定联系人回复消息
            
            
              else
            
            
              :
            
            
        itchat
            
              .
            
            send
            
              (
            
            msg
            
              =
            
            reply_info
            
              ,
            
            toUserName
            
              =
            
            friend_id
            
              )
            
            
              #正常机器人智能回复
            
            
              if
            
             __name__ 
            
              ==
            
            
              "__main__"
            
            
              :
            
            
	itchat
            
              .
            
            run
            
              (
            
            
              )
            
          
        

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论