您的位置:首页 > 移动开发 > 微信开发

模拟微信登录

2016-07-25 23:40 459 查看
#coding:utf-8
"""
微信公众平台管理界面
"""
import requests
import hashlib
import random
import ttlsa
import json
import sys

session=requests.session()
session.headers={
'User-Agent':'Mozilla/5.0 (<a href="http://www.ttlsa.com/windows/" title="windows"target="_blank">Windows</a> NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Language': 'zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3',
'Accept-Encoding': 'deflate',
'DNT': '1',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest',
'Referer': 'https://mp.weixin.qq.com/',
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache'
}
token=None

def login(username,pwd):
"""登录"""
#正确响应:{"base_resp":{"ret":0,"err_msg":"ok"},"redirect_url":"\/cgi-bin\/home?t=home\/index&lang=zh_CN&token=898262162"}
global token
pwd=hashlib.md5(pwd).hexdigest()
url='https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN'
data={'f':'json',
'imgcode':'',
'pwd':pwd,
'username':username}
res=session.post(url,data)
print 'response: login',res.text
j=json.loads(res.text)
status=j['base_resp']['err_msg']
if status=='ok':
token=j['redirect_url'].split('=')[-1]
return True
return False

def singlesend(tofakeid,content):
"""发送消息给单个人
多次发送消息可能需要发送心跳信息(未测试)"""
#正确响应:{"base_resp":{"ret":0,"err_msg":"ok"}}
url='https://mp.weixin.qq.com/cgi-bin/singlesend'
data={'ajax':'1',
'content':content,
'f':'json',
'imgcode':'',
'lang':'zh_CN',
'random':str(random.random()),
't':'ajax-response',
'tofakeid':tofakeid,
'token':token,
'type':'1',
}
res=session.post(url,data)
print 'response: singlesend',res.text
j=json.loads(res.text)
status=j['base_resp']['err_msg']
if status=='ok':
return True
return False

def masssend(content):
"""群发消息"""
#正确响应:{"ret":"0", "msg":"ok"}
url='https://mp.weixin.qq.com/cgi-bin/masssend'
data={'ajax':'1',
'city':'',
'content':content,
'country':'',
'f':'json',
'groupid':'-1',
'imgcode':'',
'lang':'zh_CN',
'province':'',
'random':str(random.random()),
'sex':'0',
'synctxnews':'0',
'synctxweibo':'0',
't':'ajax-response',
'token':token,
'type':'1'
}
res=session.post(url,data)
print 'response: masssend',res.text
j=json.loads(res.text)
if j['msg']=='ok':
return True
return False

if __name__=='__main__':
res=login('username','password')
print 'response: login',res
if not res:
sys.exit()

#群发
res=masssend('呵呵哒')
print 'response: masssend',str(res)

#发送给单人
#res=singlesend('biubiubiubiu')
#print 'response: singlesend',str(res)


相关连接:github地址参考
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微信 管理