#========================================================
# 2013/09/2
# http://blog.youkuaiyun.com/agoago_2009
#========================================================
# -*- coding:utf-8 -*-
import urllib2,cookielib,urllib,re,random,json
class FEIXIN:
def __init__(self):
print 'init FEIXIN class...'
self.name = "手机号"
self.passwd = '飞信密码'
ckjar = cookielib.CookieJar()
cookiehandle = urllib2.HTTPCookieProcessor(ckjar)
self.opener = urllib2.build_opener(cookiehandle)
urllib2.install_opener(self.opener)
self.ssid = ''
self.uid = ''
self.counter = 0
self.login()
self.GetPersonalInfo()
def login(self):
print 'start to login...'
req = urllib2.Request("https://webim.feixin.10086.cn/WebIM/Login.aspx")
req.add_header("x-requested-with", "XMLHttpRequest")
req.add_header("Accept-Language", "zh-cn")
req.add_header("Referer", "https://webim.feixin.10086.cn/loginform.aspx")
req.add_header("Accept", "application/json, text/javascript, */*; q=0.01")
req.add_header("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
#req.add_header("Accept-Encoding", "gzip, deflate")
req.add_header("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)")
req.add_header("Connection", "Keep-Alive")
req.add_header("Cache-Control", "no-cache")
body = r"UserName=" + self.name + "&Pwd=" + self.passwd + "&OnlineStatus=400&AccountType=1"
conn = self.opener.open(req,body)
info = conn.info()
#print info['Set-Cookie']
self.ssid = info['Set-Cookie'].split("webim_sessionid=")[1].split(";")[0]
data = conn.read()
#print data
if '{"rc":200}' == data:
print 'login succeessfully...'
def GetPersonalInfo(self):
print 'GetPersonalInfo...'
req = urllib2.Request("https://webim.feixin.10086.cn/WebIM/GetPersonalInfo.aspx?Version="+ str(self.counter))
self.counter = self.counter + 1
req.add_header("x-requested-with", "XMLHttpRequest")
req.add_header("Accept-Language", "zh-cn")
req.add_header("Referer", "https://webim.feixin.10086.cn/main.aspx")
req.add_header("Accept", "application/json, text/javascript, */*; q=0.01")
req.add_header("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
#req.add_header("Accept-Encoding", "gzip, deflate")
req.add_header("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)")
req.add_header("Connection", "Keep-Alive")
req.add_header("Cache-Control", "no-cache")
body = r"ssid=" + self.ssid
conn = self.opener.open(req,body)
info = conn.info()
data = conn.read()
data = json.loads(data)
self.uid = str(data["rv"]["uid"])
return data
def GetContactList(self):
print 'GetContactList...'
req = urllib2.Request("https://webim.feixin.10086.cn/WebIM/GetContactList.aspx?Version="+ str(self.counter))
self.counter = self.counter + 1
req.add_header("x-requested-with", "XMLHttpRequest")
req.add_header("Accept-Language", "zh-cn")
req.add_header("Referer", "https://webim.feixin.10086.cn/main.aspx")
req.add_header("Accept", "application/json, text/javascript, */*; q=0.01")
req.add_header("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
#req.add_header("Accept-Encoding", "gzip, deflate")
req.add_header("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)")
req.add_header("Connection", "Keep-Alive")
req.add_header("Cache-Control", "no-cache")
body = r"ssid=" + self.ssid
conn = self.opener.open(req,body)
info = conn.info()
data = conn.read()
data = json.loads(data)
return data
def GetFriendUid(self,user_name):
data = api.GetContactList()
friends = data["rv"]["bds"]
for friend in friends:
name = friend["ln"]
uid = str(friend["uid"])
if name.encode("utf8") == user_name:
print name,uid
return uid
return '0'
def GetPcRecommendBuddyListV2Handler(self):
print 'GetPcRecommendBuddyListV2Handler...'
req = urllib2.Request("https://webim.feixin.10086.cn/WebIM/GetPcRecommendBuddyListV2Handler.aspx?Version="+ str(self.counter))
self.counter = self.counter + 1
req.add_header("x-requested-with", "XMLHttpRequest")
req.add_header("Accept-Language", "zh-cn")
req.add_header("Referer", "https://webim.feixin.10086.cn/main.aspx")
req.add_header("Accept", "application/json, text/javascript, */*; q=0.01")
req.add_header("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
#req.add_header("Accept-Encoding", "gzip, deflate")
req.add_header("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)")
req.add_header("Connection", "Keep-Alive")
req.add_header("Cache-Control", "no-cache")
body = r"ssid=" + self.ssid
conn = self.opener.open(req,body)
info = conn.info()
data = conn.read()
data = json.loads(data)
return data
def SendSMS(self,Receivers,Message):
#Receivers = [669456576,649237761]
#Receivers = ','.join(Receivers)
print 'SendSMS...'
req = urllib2.Request("https://webim.feixin.10086.cn/content/WebIM/SendSMS.aspx?Version="+ str(self.counter))
self.counter = self.counter + 1
req.add_header("x-requested-with", "XMLHttpRequest")
req.add_header("Accept-Language", "zh-cn")
req.add_header("Referer", "https://webim.feixin.10086.cn/content/freeSms.htm?tabIndex=0")
req.add_header("Accept", "application/json, text/javascript, */*")
req.add_header("Content-Type", "application/x-www-form-urlencoded")
#req.add_header("Accept-Encoding", "gzip, deflate")
req.add_header("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)")
req.add_header("Connection", "Keep-Alive")
req.add_header("Cache-Control", "no-cache")
body = r"UserName=" + self.uid + "&Message=" + urllib.quote(Message) + "&Receivers=" + Receivers + "&ssid=" + self.ssid
conn = self.opener.open(req,body)
info = conn.info()
data = conn.read()
data = json.loads(data)
return data
if __name__=="__main__":
api = FEIXIN()
api.SendSMS(api.uid,'send to myself to test...')
uid = api.GetFriendUid("老婆")
Message = '没事的,哈哈,我的一个程序,测试一下'
api.SendSMS(uid,Message)
python 发送飞信-短信接口
最新推荐文章于 2020-12-15 14:23:45 发布