现在的位置: 首页 > 综合 > 正文

python 发送飞信-短信接口

2013年09月30日 ⁄ 综合 ⁄ 共 5423字 ⁄ 字号 评论关闭
#========================================================
#          			 2013/09/2 
#			http://blog.csdn.net/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)

	
		
		
		
		

		
		
		
		
		
		
		
		
		
		
		

抱歉!评论已关闭.