精华内容
下载资源
问答
  • 微信公众账号自动回复小程序链接

    万次阅读 2019-01-03 11:50:57
    <a data-miniprogram-appid="appid" data-miniprogram-path="...小程序</a> 效果图  文章引用于: http://dy.163.com/v2/article/detail/DR1H8P840511AOT5.html...
    <a data-miniprogram-appid="appid" data-miniprogram-path="路径" href="可以不写">小程序</a>
    

    效果图 

    文章引用于: http://dy.163.com/v2/article/detail/DR1H8P840511AOT5.html

    展开全文
  • 采用python编写微信自动回复程序(基于图灵机器人) 写在开头,注册CSDN这么久,第一次发博客,难免有写得不明白的地方,请读者们谅解! 一、要实现微信自动回复,需要如下准备: 1.注册一个图灵机器人(现在是要...

    采用python编写微信自动回复程序(基于图灵机器人)

    写在开头,注册CSDN这么久,第一次发博客,难免有写得不明白的地方,请读者们谅解!

    一、要实现微信自动回复,需要如下准备:

    1.注册一个图灵机器人(现在是要收费的,不过一个月的费用也不是很贵),注册好后,会有一个apikey,这个是以后连接图灵机器人需要到的;
    在这里插入图片描述

    2.安装python(本人是采用python3.7.4进行代码的编写),python安装教程很多,这里不多说了;
    3.安装python的itchat和re两个安装包,安装包的教程也很多,这里也不多说了;
    4.一个使用年限比较久的微信号(本人的微信号使用了7年),貌似注册一年的微信号是登录不了微信的网页版。因为本程序时基于网页版微信的自动回复。

    二、程序中主要的函数解析

    1.@itchat.msg_register([‘Text’,‘Map’, ‘Card’, ‘Note’, ‘Sharing’, ‘Picture’, ‘Video’])
    def tuling_reply(msg):
    该函数主要是连接微信和图灵机器人,在两者之间传递消息。使用该函数,先要注册消息的类型。
    使用itchat模块读取微信消息的内容时,消息的格式如下:
    {
    ‘MsgId’: ‘204068301817265407’,
    ‘FromUserName’: ‘@b61d******************************8572f9f’,
    ‘ToUserName’: ‘filehelper’,
    ‘MsgType’: 1,
    ‘Content’: ‘你好’,
    ‘Status’: 3,
    ‘ImgStatus’: 1,
    ‘CreateTime’: 1612185614,
    ‘VoiceLength’: 0,
    ‘PlayLength’: 0,
    ‘FileName’: ‘’,
    ‘FileSize’: ‘’,
    ‘MediaId’: ‘’,
    ‘Url’: ‘’,
    ‘AppMsgType’: 0,
    ‘StatusNotifyCode’: 0,
    ‘StatusNotifyUserName’: ‘’,
    ‘RecommendInfo’:
    {‘UserName’: ‘’,
    ‘NickName’: ‘’,
    ‘QQNum’: 0,
    ‘Province’: ‘’,
    ‘City’: ‘’,
    ‘Content’: ‘’,
    ‘Signature’: ‘’,
    ‘Alias’: ‘’,
    ‘Scene’: 0,
    ‘VerifyFlag’: 0,
    ‘AttrStatus’: 0,
    ‘Sex’: 0,
    ‘Ticket’: ‘’,
    ‘OpCode’: 0},
    ‘ForwardFlag’: 0,
    ‘AppInfo’:
    {‘AppID’: ‘’, ‘Type’: 0},
    ‘HasProductId’: 0,
    ‘Ticket’: ‘’,
    ‘ImgHeight’: 0,
    ‘ImgWidth’: 0,
    ‘SubMsgType’: 0,
    ‘NewMsgId’: 204068301817265407,
    ‘OriContent’: ‘’,
    ‘EncryFileName’: ‘’,
    ‘Type’: ‘Text’,
    ‘Text’: ‘你好’
    }

    2.def is_right_id(targe_char, string): #在字符串string中,查找单个字符targe_char。
    targe_char一般是字符’@‘因为使用itchat模块读取微信消息的内容时,FromUserName对应的值是以’@‘开头的,通过判断是否存在’@'来区别发送的消息是不是FromUserName或ToUserName类型。
    可能是因为微信的保密原因,FromUserName或ToUserName是以字符串形式给出,不是明文形式。每一次重新扫码登录网页版微信时,同一个朋友的UserName都是不一样的,但是登录后是保持不变的。

    3.def get_response(msg): #将微信的消息发给图灵机器人
    函数中的KEY就是注册图灵机器人是的apikey。

    三、功能讲解

    1.通过微信的文件传输助手(filehelper)获取需要自动回复的小伙伴的FromUserName,一般是"@b61d******************************8572f9f"这种格式,再将这个数据发给文件传输助手,文件传输助手将会提示”更新聊天小伙伴成功“。
    2.如果需要更换聊天小伙伴,发送“更新”或“更新聊天小伙伴"到文件传输助手,文件传输助手将会提示”更新设置已开启,等待设置新的聊天小伙伴“,这是讲收到的FromUserName(@b61d******************************8572f9f)发给文件传输助手,文件传输助手将提示”更新聊天小伙伴成功“。
    3.选择好聊天小伙伴,就可以实现自动回复了

    四、程序的测试

    本人使用python3.7.4,32位,电脑系统是win10,64位。程序测试有效。
    1.开启程序时,第一次选择聊天小伙伴
    在这里插入图片描述
    2. 更新聊天小伙伴
    在这里插入图片描述
    3.和聊天小伙伴的聊天内容,就不截图了,哈哈哈!

    五、完整代码如下

    #-*- coding:utf-8 -*-
    import requests
    import itchat
    import re
    
    KEY = '850***************2f'  #可以到图灵机器人官网申请一个apikey,现在要收费,一个月的费用不高
    Target_user = "filehander"
    flag = 1
    
    def is_right_id(targe_char, string):         # 在字符串string中,查找单个字符targe_char
        a = re.search(targe_char, string)        # 采用正则表达式查找,如果找到返回True,否则返回False
        if a:
            return True
        else:
            return False
    
    def get_response(msg):
        apiUrl = 'http://www.tuling123.com/openapi/api'
        data = {
            'key'    : KEY,
            'info'   : msg,
            'userid' : 'wechat-robot',
        }
        try:
            r = requests.post(apiUrl, data=data).json()   # 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常
            return r.get('text')                          # 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常
        except:                                           # 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return
            return                                        # 将会返回一个None
    
    
    @itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture', 'Video'])
    def tuling_reply(msg):
        global Target_user, flag
        if flag == 1:
            itchat.send("收到的消息:" + msg['Text'] + '\n' + "消息来自:" + msg["FromUserName"], toUserName='filehelper')
        if msg["FromUserName"] == Target_user or msg["ToUserName"] == "filehelper":
            if is_right_id('@', msg['Content']):
                Target_user = msg['Content']
                flag = 0
                itchat.send("更新聊天小伙伴成功", toUserName='filehelper')
            if msg["ToUserName"] == "filehelper" and msg['Content'] == "更新聊天小伙伴" or msg['Content'] == "更新":
                flag = 1
                itchat.send("更新设置已开启,等待设置新的聊天小伙伴", toUserName='filehelper')
            if msg["FromUserName"] == Target_user:
                reply = get_response(msg['Text'])
                itchat.send(reply, toUserName=Target_user)
    
    itchat.auto_login(hotReload=True)
    itchat.run()
    
    

    六、参考资料

    1.itchat——使用python登录网页版微信
    2.微信的自动回复&接入聊天机器人

    展开全文
  • 小程序大家都知道,其实小程序这个是个很低的门槛,只要你会搭建基本的网站,基本的代码修改无需编程就可以拥有一份属于的小程序,不仅仅是小程序还...我们的小程序是一款基于wordpress开发的小程序,包含了微信、QQ、.

    小程序大家都知道,其实小程序这个是个很低的门槛,只要你会搭建基本的网站,基本的代码修改无需编程就可以拥有一份属于的小程序,不仅仅是小程序还可以通过流量主来收益,目前小程序开通流量主的门槛是1000用户就可以,只要玩网站跟自媒体的1000就跟玩一样,网站跟公众号随便挂下就可以了!!!

     

    怎样拥有一份小程序

    大家可以在百度搜索丸子小程序或者wordpress开源小程序,如下展示都是我们的官网以及开源平台的我们小程序展示信息。

    我们的小程序是一款基于wordpress开发的小程序,包含了微信、QQ、百度、今日头条四端,让你一次性免费拥有四端小程序,只要你的流量多有想法就可以做起来一个流量变现的小程序,小程序已经开发好了就等你安装了。

    或者你在wordpress插件后台搜索Mini Program API插件安装,就可以连接你的网站数据同步到小程序端。

    如此强大的小程序只是开源免费持续更新目前有三款前端模板供你选择,源码同步地址点击直达

    如需帮助可联系微信:hackdxd

     

     

    扩展专业版本

    除此以为我们还做了扩展版本符合更多用户企业的选择,无需开发编程直接安装即可,这样对于企业来说既节约了人工成本又可以快速的达到项目的要求,目前有社区+电商+资讯+知识付费版本。

    丸子小程序社区版是由丸子团队基于 WordPress 开发适合于社交互动类小程序,适合社区论坛,兴趣圈子,提供了丰富的运营工具,如广告功能,积分阅读等。

    强大的后台支持数据系统

    后台自主流量主广告功能

    如需帮助可联系微信:hackdxd

    目前前端新增了自定义字,完美对接百度网盘小程序功能等!!!

    流量变现

    近期我们测试了一次数据小程序流量主变现的数据如下,一周左右的数据测试如下,流量主还是很有做头的就看你怎么去运营做了,加油!!!

    图片

    图片

    图片

    社区+电商+知识付费小程序功能

    功能特色

    内容同步

    同步网站文章、分类、标签、评论及页面等内容

    增强阅读

    提供喜欢文章 / 收藏文章 / 评论文章 / 随机推荐 / 热点文章等

    媒体功能

    支持腾讯视频 / 微博视频解析和本地服务器视频播放,音频播放功能

    积分功能

    提供积分设置增涨策略,积分等级,支持打卡签到积分,积分阅读和积分下载文档

    扫码登录

    提供通过微信扫描小程序码或打开小程序扫描二维码登录网站,实现 PC 端平台交互

    广告功能

    集成小程序流量主广告功能,观看激励视频阅读文章全文,可在后台随时开启或关闭展示

    焦点轮播

    提供后台设置轮播图,支持打开小程序内部页面链接、业务域名跳转及其他小程序跳转

    在线直播

    集成微信小程序直播功能,帮助小程序实现高人气、高转化与高粘性,与商城系统相得益彰

    审核管理

    提供小程序管理审核投稿文章,话题发布和评论发表,可审核或删除投稿文章、话题、评论

    留言反馈

    提供用户留言反馈功能,可用于收集用户反馈建议和预约、报名表单功能,建立连接用户渠道

    消息通知

    集成微信小程序订阅消息模板通知功能,实现评论审核通知,回复评论通知和文章更新发布通知

    私信通知

    增强小程序互动消息,支持用户间私信交流,系统广播通知,话题文章受到喜欢、收藏、评论消息通知

    话题圈子

    提供兴趣交流圈子,发表话题内容,可上传图片、视频、文档。支持解析公众号文章链接,投稿发布文章

    附近位置

    提供发表话题启用定位信息后,可以查找附近帖子作者,可用于租房,交友,活动等与位置相关话题发布

    商城系统

    提供独立商城功能,支持微信支付购买和积分兑换商品功能,可设置多种商品属性,集成订单物流快递查询

    小程序体验

    打开微信搜索小程序:丸小圈 即可体验

    打开界面部分截图演示

     

     

     

     

     

    多端自媒体小程序展示

    丸子小程序新资讯版是由丸子团队基于 WordPress 开发适合于媒体资讯类小程序,适合自媒体运营,提供了丰富的运营工具,如广告功能,积分阅读等。

    丸子小程序特色简介

    丸子小程序优势简介

    功能特色

     内容同步

    同步网站文章、分类、标签、评论及页面等内容

     增强阅读

    提供喜欢文章 / 收藏文章 / 评论文章 / 随机推荐 / 热点文章等

     媒体功能

    支持腾讯视频 / 微博视频解析和本地服务器视频播放,音频播放功能

     积分功能

    提供积分设置增涨策略,支持打卡签到积分,积分阅读和积分下载文档

     扫码登录

    打开百度智能小程序通过小程序扫码登录功能扫描二维码登录网站,实现 PC 端平台交互

     广告功能

    集成强大广告功能系统,支持小程序流量主和自定义广告,可在后台随时开启或关闭展示

     焦点轮播

    提供后台设置轮播图,支持打开小程序内部页面链接、业务域名跳转及其他小程序跳转

     留言反馈

    提供用户留言反馈功能,可用于收集用户反馈建议和预约、报名表单功能,建立连接用户渠道

     消息通知

    集成百度智能小程序消息模板通知功能,实现评论审核通知,回复评论通知和文章更新发布通知

     小程序 SEO

    集成百度智能小程序 API 提交,百度信息流物料提交和自动同步索引 swan-sitemap 功能

    演示截图

     

     

    展开全文
  • 微信自动回复其实主要就是登录,接收消息,回复消息三个功能,微信没有提供方便的API,但是可以分析网页版微信通信原理,通过模拟浏览器来实现需要的功能。下面将给出微信网页版通信原理以及Python具体实现代码。 ...

    介绍

    微信自动回复其实主要就是登录,接收消息,回复消息三个功能,微信没有提供方便的API,但是可以分析网页版微信通信原理,通过模拟浏览器来实现需要的功能。下面将给出微信网页版通信原理以及Python具体实现代码。

    分析


    -获取uuid:

    GET https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https%3A%2F%2Fwx.qq.com%2Fcgi- bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN&_=1486743163000
    Param _ (13位时间戳)
    Response window.QRLogin.code = 200; window.QRLogin.uuid = "4YyQFP2Daw==";

    -获取二维码:

    GEThttps://login.weixin.qq.com/qrcode/4YyQFP2Daw==
    Param 4YyQFP2Daw== 即上面的uuid
    Response二维码图片

    -监听是否扫描二维码以及是否确认登录:

    GET https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=4YyQFP2Daw==

    Param uuid 同上

    Response

    window.code=200;window.redirect_uri="https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=ARxD7GSdBYtNHOxhK0BF0ek-
    @qrticket_0&uuid=4YyQFP2Daw==&lang=zh_CN&scan=1486743186";
    code = 408 无响应,201 扫描二维码但没有登录(此时响应数据中还包含用户头像图片base64编码的字符串,UserAvatar) 200 登录
    redirect_uri 为接下来需要请求的地址

    -获取后续访问所需要的key等

    GET https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=ARxD7GSdBYtNHOxhK0BF0ek-@qrticket_0&uuid=4YyQFP2Daw==

    &lang=zh_CN&scan=1486743186p

    Param URL为上次返回的redirect_uri 参数已经带上了

    Response

    <error><ret>0</ret><message></message><skey>@crypt_828c27e0_e98d62f6954235194f2b1252943f25ad</skey><wxsid>0zEvAdWKm9ZZgYVn</wxsid><wxuin>1564527827</wxuin><pass_ticket>OLxGHwqL%2BWNArxvXaqjDy06qzdrSojq6DJwiBF19sgw2CibZSJBv1WwOXAfKnLIg</pass_ticket><isgrayscale>1</isgrayscale></error>

    -初始化

    POST https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxinit?r=-485039295&lang=zh_CN&pass_ticket=OLxGHwqL%2BWNArxvXaqjDy06qzdrSojq6DJwiBF19sgw2CibZSJBv1WwOXAfKnLIg

    Param r ( - + 9位随机数),pass_ticket,{"BaseRequest": {"Uin": "1564527827", "Skey": "@crypt_828c27e0_e98d62f6954235194f2b1252943f25ad", "DeviceID": "

    e924318232435460", "Sid": "0zEvAdWKm 9ZZgYVn"}} 第三个参数其中为json数据,DeviceID为(e + 15位随机数)

    Response 返回json,包含用户自己的信息,最近联系人,订阅的公众号消息等等;这里只需要关注 UserName=@821c154488cdddbfb04141aa8f681174305d21d67a24cfd6eca3e77a152e52ff 每位用户都有一个UserName,但是每次登陆UserName都是重新分配的,

    SyncKey 为一组key ,后面接收消息需要将其作为参数, 同时每次接收接收消息时,也会返回一组SyncKey作为在下一次请求的参数,以此类推

    -状态检查

    这里会建立一个长连接,每次连接大约20秒左右,若新消息,手机端发出退出网页登录指令,或者状态异常会返回特定的状态码

    GET https://wx.qq.com/cgi-bin/mmwebwx-bin/synccheck?r=1486743215000&skey=@crypt_828c27e0_e98d62f6954235194f2b1252943f25ad&sid=0zEvAdWKm9Z

    ZgYVn&uin=1564527827&deviceid=e891796429.95749&synckey=1_660530221%7C2_660530488%7C3_660530485%7C1000_1486721341&_=1486740215000

    Param r(时间戳),skey,sid,uin,deviceid,synckey(将SyncKey中的多组key 以 key1_value1|key2_value2 的形式拼接成字符串如:3_660530485|1000_1486721341),_ (时间戳)

    Response window.synccheck={retcode:"0",selector:"2"} retcode=0 正常 ,1101 退出登录,1102 会话异常 , selector= 0 无变化 2or6 有消息

    -接收消息

    若状态检查到有新消息,则请求消息
    POST https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsync?sid=0zEvAdWKm9ZZgYVn&skey=@crypt_828c27e0_e98d62f6954235194f2b1252943f25ad&lang=zh_CN&pass_ticket=OLxGHwqL%2BWNArxvXaqjDy06qzdrSojq6DJwiBF19sgw2CibZSJBv1WwOXAfKnLIg
    Param sid,skey,pass_ticket 以及 json数据 {"SyncKey": {"Count": 4, "List": [{"Key": 1, "Val": 660530221}, {"Key": 2, "Val": 660530488}, {"Key": 3, "Val": 660530485}, {"Key": 1000, "Val": 1486721341}]}, "BaseRequest": {"Sid": "0zEvAdWKm9ZZgYVn", "Skey": "@crypt_828c27e0_e98d62f6954235194f2b1252943f25ad", "DeviceID": "e141257009.76972", "Uin": "1564527827"}, "rr": "-888098293"} 其中rr (- + 9位随机数)
    Response
    json数据包含消息的所有信息,其中关注 FromUserName=@821c154488cdddbfb04141aa8f681174305d21d67a24cfd6eca3e77a152e52ff 消息发送者以及 Content 消息内容

    -发送消息

    POST h ttps://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsendmsg?lang=zh_CN&pass_ticket=0%2BoUqOWdYEen6oDVFEIv5ncIIaJcWs1LeSi69C8tUTgcp36azGAl6a8uT02PiaHu
    Param pass_ticket, json数据{"Msg": {"FromUserName": "@9e718026650771acd6d759922e000fafceaa1a5fda83aea7b3b70bc1bd6c3774", "LocalID": "14867488199507670", "ClientMsgId": "14867488199507670", "ToUserName": "@9e718026650771acd6d759922e000fafceaa1a5fda83aea7b3b70bc1bd6c3774", "Content": "消息内容", "Type": "1"}, "BaseRequest": {"Sid": "5Qn7rswOtPRHFw92", "Skey": "@crypt_828c27e0_ad386b3d4d68a282eda03d7d5b2d3104", "DeviceID": "e397471984070243", "Uin": "1564527827"}, "Scene": "0"} 其中LocalID,ClientMsgId 为13位时间戳加上5位随机数
    Response 返回响应的状态码,发送成功会返回 LocalID 和 ClientMsgID


    以上就是我们需要的知道的,当然其他比如读取所有联系人等都是大同小异,这里就不多赘述了。
    到这里还有关键的一步,那就是如何根据收到的消息自动回复,当然是接入其他可以聊天的程序了,这里为了方便我使用的是牛人趣事的simsimi聊天机器人的外链,它不需要登录等操作,连request header 都不用伪造^0^,直接将接受的消息post过去,将返回的消息作为微信回复消息;当然也可以接入更智能的机器人。

    -获取自动回复的消息

    POST http://www.niurenqushi.com/api/simsimi/
    Param txt (发送的消息)
    Response {"code":100000,"text":"消息"}

    代码

    运行以下代码,会自动弹出二维码图片,手机扫码登录之后开始运行,手机端发送退出登录指令时结束。
    重点在于流程和思路,代码也比较糙,注释也就不加了,多指教^0dfd^
    # -*- coding:utf-8 -*-
    #author:fengw
    import urllib,urllib2,cStringIO,re,sys,os,cookielib,ssl,requests,time,json,random,threading,warnings
    from PIL import Image
    from matplotlib import pyplot as plt
    import xml.etree.cElementTree as et 
     
    reload(sys)
    sys.setdefaultencoding('utf-8')
    warnings.filterwarnings("ignore")
     
    def get_device_id():
    	return 'e'+str(random.random()*10000000000)[0:10]+str(random.random()*100000)[0:5]
    def qrcode_img():
    	response=urllib2.urlopen(QRCODE_KEY_URL).read()
    	p=re.compile(r'(\d+(\.\d+)?)')
    	code=p.findall(response)[0][0]
    	if  code =='200':
    		p=re.compile(r'\"(.*)\"')
    		qrcode_key=p.findall(response)[0]
    		qrcode_img_url=QRCODE_IMG_BASE_URL+qrcode_key
    		global CHECK_LOGIN_STATUS_BASE_URL
    		CHECK_LOGIN_STATUS_BASE_URL=CHECK_LOGIN_STATUS_BASE_URL+qrcode_key
    		qrcode_img=Image.open(cStringIO.StringIO(urllib2.urlopen(qrcode_img_url).read()))
    		plt.ion()
    		plt.figure()
    		plt.imshow(qrcode_img)
    		plt.figure()
    		plt.close(2)		
    	else :
    		print 'sorry,request qrcode failed...'
    		time.sleep(2)
    		os._exit(0)
    		
    def listen_login():
    	run=True
    	times=0
    	msg='please scan the qrcode'
    	while run:
    		times+=1
    		print msg
    		response=urllib2.urlopen(CHECK_LOGIN_STATUS_BASE_URL).read()
    		p=re.compile(r'(\d+(\.\d+)?)')
    		code=p.findall(response)[0][0]
    		if  code=='201':
    			msg= 'please login...'
    			plt.close()
    		if  code=='200':
    			run=False
    			plt.close()
    			print  'login sucess,running....'
    			p=re.compile(r'\"(.*)\"')
    			redirect_url=p.findall(response)[0]
    			response=conn.get(url=redirect_url,allow_redirects=False,verify=False)
    			msg=response.text
    			global ret,message,skey,wxsid,wxuin,pass_ticket,isgrayscale
    			xml=et.fromstring(msg)
    			ret=xml[0].text
    			message=xml[1].text
    			skey=xml[2].text
    			wxsid=xml[3].text
    			wxuin=xml[4].text
    			pass_ticket=xml[5].text
    			isgrayscale=xml[6].text
    		
    		
    		if  times==20:
    			run=False
    def update_synckey(msg):
    	global synckey,syncheck_key
    	synckey=str(msg['SyncKey']).replace("u'","'")		
    	for k_v in msg['SyncKey']['List']:
    		syncheck_key+='|'+str(k_v['Key'])+'_'+str(k_v['Val'])
    	syncheck_key=syncheck_key[1:]
    def  wx_init():	
    	url='https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxinit?r=-485039295&lang=zh_CN&pass_ticket='+pass_ticket	
    	data={'BaseRequest':{'DeviceID':'%s'%get_device_id(),'Sid':'%s'%wxsid,'Skey':'%s'%skey,'Uin':'%s'%wxuin}}
    	res=conn.post(url=url,headers=headers,data=json.dumps(data),verify=False)
    	response=res.text	
    	msg=json.loads(response)
    	global user
    	user=msg['User']['UserName']
    	update_synckey(msg)
    	
    	
    def get_contact_list():
    	base_url='https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetcontact?lang=zh_CN&seq=0'
    	base_url+='&pass_ticket='+pass_ticket+'&r='+str(int(time.time())*1000)+'&skey='+skey
    	response=urllib2.urlopen(base_url).read()
    	data=json.loads(response)
    	f=open(r'd:/linklist.txt','w')
    	for friend in data['MemberList']:
    		msg=friend['NickName']+","+friend['RemarkName']+"\n"
    		f.write(msg.encode('utf-8'))
    	f.close()
    	
    def get_auto_reply(send_msg):
    	url='http://www.niurenqushi.com/api/simsimi/'
    	data={'txt':'%s'%send_msg}
    	res=conn.post(url=url,data=data)
    	res.encoding='utf-8'
    	return  json.loads(res.text,'')['text']
    	
     
    def reply_msg(content,touser):	
    	url='https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsendmsg?lang=zh_CN&pass_ticket='+pass_ticket
    	#touser='filehelper'
    	ClientMsgId=str(int(time.time()))+str(random.random()*10000000)[0:7]
    	print 'recive msg :',content
    	sendmsg=get_auto_reply(content)
    	data={'BaseRequest':{'Uin':'%s'%wxuin,'Sid':'%s'%wxsid,'Skey':'%s'%skey,'DeviceID':'%s'%get_device_id()},'Msg':{'ClientMsgId':'%s'%ClientMsgId,'Content':'%s'%sendmsg.encode('utf-8'),'FromUserName':'%s'%user,'LocalID':ClientMsgId,'ToUserName':'%s'%touser,'Type':'1'},'Scene':'0'}
    
    	data=json.dumps(data,ensure_ascii=False)
    	res=conn.post(url=url,headers=headers,data=data.encode('utf-8'),verify=False)
    	print 'reply:',sendmsg
    def recive_msg():
    	base_url='https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsync'
    	base_url+='?sid='+wxsid+'&skey='+skey+'&lang='+'zh_CN'+'&pass_ticket='+pass_ticket
    	while True:
    		try:
    			rr='-'+str(random.random()*1000000000)[0:9]
    			data={'BaseRequest':{'Uin':'%s'%wxuin,'Sid':'%s'%wxsid,'Skey':'%s'%skey,'DeviceID':'%s'%get_device_id()},'SyncKey':eval(synckey),'rr':'%s'%rr}
    			res=conn.post(url=base_url,headers=headers,data=json.dumps(data),verify=False)
    			res.encoding='utf-8'
    			response=res.text		
    			if response==None:
    				continue
    			data=json.loads(response)
    			update_synckey(data)
    			for msg in data['AddMsgList']:
    				content=msg['Content']
    				fromuser=msg['FromUserName']
    				if fromuser==user:
    					continue
    				if content[0:4]=='<':				
    					continue
    				#print 'recived msg:',content.decode('unicode_escape'),'from user :',fromuser		
    				threading.Thread(target=reply_msg,args=(content,fromuser)).start()
    			time.sleep(2)
    		except Exception  as e :
    			pass
    		
    def sync_check():
    	listen=True
    	base_url='https://webpush.wx.qq.com/cgi-bin/mmwebwx-bin/synccheck'
    	base_url+='?r='+str(int(time.time())*1000)+'&skey='+skey+'&sid='+wxsid+'&uin='+wxuin+'&deviceid='+get_device_id()+'&synckey='+syncheck_key+'&_='+str(int(time.time())*1000-3000000)
    	request = urllib2.Request(url=base_url, headers=headers)
    	while listen:
    		try:
    			res=conn.get(url=base_url,headers=headers,verify=False)
    			response=res.text
    			p=re.compile(r'(\d+(\.\d+)?)')
    			retcode=p.findall(response)[0][0]
    			if retcode=='1101' or retcode=='1102':
    				print 'login out ...'
    				listen=False
    				os._exit(0)
    			time.sleep(2)
    		except Exception:
    			pass
    if __name__ == '__main__':		
    	ssl._create_default_https_context = ssl._create_unverified_context
    	QRCODE_KEY_URL='https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https%3A%2F%2Fwx.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN&_='+str(int(time.time())*1000)
    	QRCODE_IMG_BASE_URL='https://login.weixin.qq.com/qrcode/'
    	CHECK_LOGIN_STATUS_BASE_URL='https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid='
    	ret,message,skey,wxsid,wxuin,pass_ticket,isgrayscale='','','','','','',''
    	synckey,user='',''
    	syncheck_key=''
    	cookie=cookielib.CookieJar()
    	handler=urllib2.HTTPCookieProcessor(cookie)
    	debug_h=urllib2.HTTPSHandler(debuglevel=0)
    	opener=urllib2.build_opener(handler,debug_h)
    	urllib2.install_opener(opener)
    	conn=requests.session()
    	headers = {     'Host': 'wx.qq.com',
    					'Connection': 'keep-alive',
    					'Accept': 'application/json, text/plain, */*',
    					'Origin': 'https://wx.qq.com',
    					'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0',
    					'Content-Type': 'application/json;',				
    					'Accept-Encoding': 'gzip, deflate, br',
    					'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3'
    					}
    	#获取微信二维码并显示					
    	qrcode_img()
    	#监听用户扫描二维码和登录动作
    	listen_login()
    	#微信初始化
    	wx_init()
    	#开启子线程监听登录状态
    	check_status_task=threading.Thread(target=sync_check)
    	check_status_task.start()
    	#get_contact_list()
    	#主线程监听消息
    	recive_msg()
    

    第一次写,请无视排版肯定是编辑器的问题,怎么感觉比word还难

    展开全文
  • python实现微信自动回复姐姐

    千次阅读 2019-04-25 21:08:41
    托管机器人:用Python写一个机器人,自动回复别人说话实现过程:1.首先要申请一个可以说话的机器人.机器人网站 关注编持续更新有趣的学习文章哦 http://www.tuling123.com注册一个账号,然后登陆,创建一个机器人: 2....
  • 30行代码实现微信自动回复机器人

    千次阅读 2019-01-29 08:37:55
    30行代码实现微信自动回复机器人 一、写在前面 今天下午又学到了itchat另一种有趣的玩法---微信自动回复机器人。 程序很简单仅仅三十行代码左右,实现了机器人自动与你的微信好友聊天,下面是我的机器人笼包跟自己...
  • 微信小程序客服消息关键词自动回复系统,您可以通过它设置关键词自动回复的功能。 功能介绍 1.系统配置 可配置消息推送对接微信平台的相关信息 2.用户管理 可设置多用户,普通客服和多个管理员 3.个人资料 修改自己...
  • 微信小程序是腾讯于 2017 年 1 月 9 日推出的一种不需要下载安装即可在微信平台上使用的应用程序,用户扫一扫或者搜一下即可...本文主要介绍如何在微信小程序项目中使用 MQTT,实现小程序客户端与 MQTT 云服务的连接
  • 使用python实现微信小程序自动签到2.0

    千次阅读 多人点赞 2020-04-26 11:53:03
    微信小程序自动签到功能描述目标输出包管理程序的结构设计步骤1步骤2步骤3步骤4代码实现使用findler抓包工具查看请求类型再次使用findler抓包,查看请求内容使用多线程完成多用户提交的功能使用itchat第三方库实现...
  • <a data-miniprogram-appid=“微信小程序appid” data-miniprogram-path=“跳转的页面” href=“http://www.qq.com”>小程序名称(全称)
  • 微信自动抢红包实现原理
  • 小程序客服接入建议采用小程序官方客服接口(因小程序内部websocket连接问题未解决,本SDK界面接入方式不建议使用),客服接口接入具体操作步骤如下: 登录V5后台 “系统接入” -> “微信小程序” 按照填写说明进行接...
  • 这次的实例做做成可在任意电脑运行的微信自动回复机器人exe.文件。二、完成这个应用我们需要装一些库,,itchat;这个东东不出意外直接pip install itchat 就行了pyinstaller;这个库是用来将你的.py文件打包成exe...
  • 今日推荐加微信(cxydev)备注:CSDN,加入免积分下载群备注:加群,你加入程序员吹水群机器人自动邀请的本文来源于Ahab杂货铺授权发布 ...
  • 简单粗暴,分享一种有趣的玩法---微信自动回复机器人。   程序很简单仅仅三十行代码左右,实现了机器人自动与你的微信好友聊天,下面是我的机器人笼包跟自己微信好友聊天的截图。   二、程序介绍 欢迎...
  • 微信小程序客服消息分两种,一种是自动回复 需要我们在后台配置 另一种是人工回复 只要我们在小程序后台配置就可以了 今天主要写的是自动回复小程序后台配置的坑 def check_miniprogram_msg_signature(token, ...
  • 这次的实例做做成可在任意电脑运行的微信自动回复机器人exe.文件。 二、完成这个应用我们需要装一些库,, itchat;这个东东不出意外直接pip install itchat 就行了 pyinstaller;这个库是用来将你的.py文件...
  • 托管机器人:用Python写一个机器人,自动回复别人说话 实现过程: 1.首先要申请一个可以说话的机器人.机器人网站http://www.tuling123.com 注册一个账号,然后登陆,创建一个机器人: 2.写一段连接机器人的程序....
  • 自定义菜单跳转小程序 菜单json中找到自己想加的位置 { "type": "miniprogram", "name": "wxa", "url": "http://mp.weixin.qq.com", "appid": "wx************", "pagep.
  • 小程序接入客服,我们就需要调用微信客服功能。很简单,只需要在页面中使用 <button open-type="contact" /> 可以显示进入客服会话按钮。 然后我们就能登录网页版的微信公众平台的客服页面进去回复各种...
  • 微信宣布收回小程序“用户实名信息授权”接口4月1日,微信团队发布了关于收回小程序"用户实名信息授权"接口的相关说明,建议小程序开发者尽快调整方案。微信称,近期根据用户投诉反馈建议,及监管合规指导,结合业务...
  • 微信小程序客服消息

    2020-08-10 21:41:03
    在下面一步微信小程序后台开发设置的时候前提是此接口已经完成、否则微信小程序会验签失败! package com.cong.controller; import java.security.MessageDigest; import java.util.Arrays; import javax.servlet....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,897
精华内容 2,758
关键字:

微信自动回复小程序链接