Python调用飞信接口发送短信
2013年9月18日亲测可用。下面是代码:【使用前将账号密码换为自己的】
# -*- coding:utf-8 -*- # file: SendFetion.py # by Lee 2013-9-18 """----------------------------------------------------------------------------- 使用HTTPS调用飞信接口: https://quanapi.sinaapp.com/fetion.php?u=飞信登录手机号&p=飞信登录密码&to=接收飞信的手机号&m=飞信内容 返回结果为Json格式,result=0时表示发送成功 {“result”:0,”message”:”\u53d1\u9001\u6210\u529f”} -----------------------------------------------------------------------------""" import sys import httplib import urllib import re import time import json class Fetion: """ model to call fetionapi. attribute:url, fromTel, pwd, toTel, msg function:Trans, format_url, SendMsg """ url = "https://quanapi.sinaapp.com/fetion.php?u=" def __init__(self, toTel, msg, fromTel = '151xxxxxxxx', # default my phone pwd = 'pxxxxxxxx'): self.fromTel = fromTel self.pwd = pwd self.toTel = toTel self.msg = self.Trans(msg) def Trans(self, msg): # change space to '%20', otherwise error raised return re.sub(" ", "%20", str(msg)) def format_url(self): url_address = self.url + self.fromTel \ + "&p=" + self.pwd \ + "&to=" + self.toTel \ + "&m=" + self.msg return url_address def SendMsg(self): # call the api by http get method return urllib.urlopen(self.format_url()) def msg2log(msg): logfile = open('MyFetion.log', 'a') now = time.strftime('%Y%m%d %H:%M:%S') logfile.write('\n'+ now + '\n' + msg + '\n') logfile.close() def main(): # format mutual message print "\n" + " "*10 + "*"*60 print " "*10 + " Personal Fetion" print " "*10 + " Enter the number and message what you want to send to." print " "*10 + " blank number means yourself," print " "*10 + " and a blank message line to exit." print " "*10 + "*"*60 # get the destination phone number toTel = raw_input("Input the target telphone number:") if toTel == "": toTel = "151xxxxxxxx" # none input for a target most used # get the message and send by Fetion class while True: msg = raw_input("Message:") if msg == "": break # none input to quit else: print "Sending...." msg2log(msg) ff = Fetion(toTel, msg) answer = ff.SendMsg() data = answer.read() jdata=json.loads(data) if jdata['result']==0: print 'Done.^_^\n' else: print 'Fail.-_=\n' if __name__ == '__main__': main()
补充:Web开发 , Python ,