1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python飞信api_Python调用飞信接口发送短信 | 学步园

python飞信api_Python调用飞信接口发送短信 | 学步园

时间:2021-07-04 22:46:49

相关推荐

python飞信api_Python调用飞信接口发送短信 | 学步园

主要参考了两篇文章:(对原作者表示感谢~)

9月18日亲测可用。

下面是代码:【使用前将账号密码换为自己的】

# -*- coding:utf-8 -*-

# file: SendFetion.py

# by Lee -9-18

"""-----------------------------------------------------------------------------

使用HTTPS调用飞信接口:

/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 = "/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()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。