Python调用飞信接口发送短信
来源:互联网 发布:烈焰遮天全套完整源码 编辑:程序博客网 时间:2024/05/11 18:36
# -*- 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', # 这里是发送方号码 和 密码 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" # 如果控制台没有输入手机号就默认使用这个toTel的值 # get the message and send by Fetion class while True: msg = raw_input("Message:") #输入要发送的短信消息 if msg == "": break # 为空就退出 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()