fetion发送短信介绍(比如天气预报)

背景

  最近自从论坛上出现了利用139手机邮箱建立股票短信查询系统,陆续有几个人咨询我相关fetion api使用,所以这里做一下记录,分享一下给大家。

 

使用介绍

 

 我使用fetion,没啥特别的技术含量,直接利用了三方的api包,也没干啥高级的事情,只是进行短信发送。

  1. 比如每天发送一下天气预报,黄金/白银价格发送给我女朋友。哄哄女生还是挺不错的哦
  2. 我自己利用fetion api主要是用于开发服务器监控,手里有近15台的服务器,时不时会发生一些事情,比如内存不足,硬盘不够了等,通过shell脚本检查+fetion短信发送,完成短信报警监控,这样一下子就轻松了。
  3. 基于fetion api基础上,包装了一个web服务,这样可以通过浏览器方式发送短信,比如部门活动,就可以群发部门同事短信

    ps : 可以干的事情很多,只有你足够的有才,特别适合骗一下纯情的小女生,哈哈

正题

1.  下载fetion lib库(我使用的是ubuntu 32位的系统,所以后续都是介绍linux系统相关,如使用windows请直接访问http://www.it-adv.net/)

 

下载公用lib库: http://www.it-adv.net/fetion/linuxso_20101113.rar 

下载fetion主程序: http://bbs.it-adv.net/attachment.php?aid=43&k=a8c8d4609367ded2ae24721b4246802a&t=1289908191

 

 

2. 环境配置

1.$ mkdir  fetion
2.$ cp -r linuxso_20101113  fetion/lib/
3.$ cp /tmp/fetion  fetion/
4.
5.创建fetion目录,包含主程序和lib库

3.  设置启动脚本

1.$ touch fetion.sh
2.$ vi fetion.sh
3.
4.# fetion.sh脚本内容
5.#!/bin/sh
6.
7.if [ $# -eq 0 ] ; then
8.  cat << EOF >&2
9.Usage: $0 mobile passwd to msgcontent
10.EOF
11.  exit 1
12.fi
13.
14.FETION_MOBILE=$1
15.FETION_PWD=$2
16.FETION_TO=$3
17.MSG="$4"
18.BASE=`dirname $0`
19.
20.export LD_LIBRARY_PATH=$BASE/lib:$LD_LIBRARY_PATH
21.$BASE/fetion --mobile=$FETION_MOBILE --pwd=$FETION_PWD --to=$FETION_TO --msg-utf8="$MSG" --msg-type=1 --exit-on-verifycode

其余的参数可见:

1.Usage:
2.    --mobile=[mobile]
3.    --sid=[sid]
4.    --pwd=[pwd]
5.    --config=[config file] *format:index mobile password
6.    --index=[index no in config file,refer to sample.conf]
7.
8.    --debug  *debug mode on
9.    --hide  *login fetion in hidden state
10.    --to=[mobile/sid]
11.    --command-path=[command file path]
12.    --robotmode
13.    --daemon(linux only)
14.    --proxy-ip(http proxy ip)
15.    --proxy-port(http proxy port)
16.    --msg-gb=[gb2312/gbk message]
17.    --msg-utf8=[utf8 message]
18.    --msg-type=[0/1/2 sms longsms smartmsg]
19.    --file-gb=[gb2312/gbk file]
20.    --file-utf8=[utf8 file]
21.    --query-cmcc-no
22.    --auto-retry
23.    --exit-on-verifycode
24.    --t3key=[http://www.tui3.com/page/smssend/]

fetion.sh 脚本作用(推荐)

   运行时指定lib库,选择默认的登录方式为手机号码(sid那串不是人记的),--msg-type指定使用longsms,字符集使用utf-8。说白了就是封装一下fetion,自己使用起来更加方便而已。

 当然你也可以不行,每次你就手工敲:

1.export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH  

或者在系统级别添加lib库,需要root权限,不推荐:

1.$ vi /etc/ld.so.conf
2.
3.# 末尾添加一行记录
4./usr/local/fetion/lib,然后把对应下载的lib库拷过去

4. 运行测试一下


 

注意:

1. 使用复杂的密码(数字+字母+符号),将不会弹出图形验证码。
2. 第一次使用机器人时,即使是复杂密码,也可能会弹出图形验证码,以后将不再提示。

 

所以密码还是搞的稍微复杂点吧。

 

5.  其他应用 

天气预报:

使用了一个html2text的库,可以下载:wget http://archive.ubuntu.com/ubuntu/pool/main/h/html2text/html2text_1.3.2a.orig.tar.gz

1.#!/bin/sh
2.
3.# 1. set path
4.BASE_DIR=/home/admin/ljh/weather
5.HTML2TEXT_DIR=/home/admin/ljh/html2text-1.3.2a
6.
7.# 3. get weather from internet
8.wget -nv -O $BASE_DIR/weather.html http://wap.weather.com.cn/wap/weather/101210101.shtml > $BASE_DIR/log 2>&1
9.
10.# 4. format
11.echo "" > $BASE_DIR/msg
12.cat $BASE_DIR/weather.html | $HTML2TEXT_DIR/html2text | grep -A 6 '日' | sed 's/\[.*//g' | sed 's/.*]$//g' | sed 's/ //g' | grep -v '^$' | head -n 6 > $BASEE
13._DIR/msg
14.
15.# 5. send sms
16.echo `date` > $BASE_DIR/log
17.sh $BASE_DIR/fetion.sh "`cat $BASE_DIR/msg`" >> $BASE_DIR/log 2>&1
18.
19.# 6. clear env
20.rm -r $BASE_DIR/weather.html
21.#rm -r $BASE_DIR/msg

说明:调用的是http://wap.weather.com.cn 的页面,大家可以选择对应的城市url,进行天气预报发送处理。

黄金/白银 价格短信

1.#!/bin/sh
2.
3.# 1. set path
4.BASE_DIR=/home/admin/ljh/zhj
5.
6.# 3. get weather from internet
7.wget -nv -O $BASE_DIR/gold.txt http://quote.zhijinwang.cn/xml/gold.txt?$RANDOM > $BASE_DIR/log 2>&1
8.wget -nv -O $BASE_DIR/ag.txt http://quote.zhijinwang.cn/xml/ag.txt?$RANDOM > $BASE_DIR/log 2>&1
9.
10.# 4. format
11.echo "" > $BASE_DIR/msg
12.
13.TIME=`cat $BASE_DIR/gold.txt | awk -F'&' '{print $1}' | awk -F'=' '{printf "更新时间:%s",$2}'`
14.ZHJ_MAI_PRICE=`cat $BASE_DIR/gold.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "买入价:%.2f",$3}'`
15.ZHJ_MAI_CHU_PRICE=`cat $BASE_DIR/gold.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "卖出价:%.2f",$4}'`
16.ZHJ_MAX_PRICE=`cat $BASE_DIR/gold.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "最高价:%.2f",$5}'`
17.ZHJ_MIN_PRICE=`cat $BASE_DIR/gold.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "最低价:%.2f",$6}'`
18.
19.AG_MAI_PRICE=`cat $BASE_DIR/ag.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "%.2f",$3}'`
20.AG_MAI_CHU_PRICE=`cat $BASE_DIR/ag.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "%.2f",$4}'`
21.AG_MAX_PRICE=`cat $BASE_DIR/ag.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "%.2f",$5}'`
22.AG_MIN_PRICE=`cat $BASE_DIR/ag.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "%.2f",$6}'`
23.
24.echo "$TIME\n$ZHJ_MAI_PRICE,$AG_MAI_PRICE\n$ZHJ_MAI_CHU_PRICE,$AG_MAI_CHU_PRICE\n$ZHJ_MAX_PRICE,$AG_MAX_PRICE\n$ZHJ_MIN_PRICE,$AG_MIN_PRICE" > $BASE_DIR/msg
25.
26.# 5. send sms
27.echo `date` > $BASE_DIR/log
28.sh $BASE_DIR/fetion.sh "`cat $BASE_DIR/msg`" >> $BASE_DIR/log 2>&1
29.
30.# 6. clear env
31.rm -r $BASE_DIR/gold.txt
32.rm -rf $BASE_DIR/ag.txt
33.#rm -r $BASE_DIR/msg

说明:调用的是www.zhijinwang.cn的几个url,shell分析完数据后进行短信发送,然后设置一个crontab,定时发送一下。

 

做了个web页面:

 

tips : 给部门做了一个短信发送页面,写定具体的mobile列表,同时由部门贡献一个飞信号码,哈哈

 

服务器监控

 1. 使用的nagios监控脚本+fetion短信报警

 

其中一个例子,比如机器load监控

1.$ touch monitor.sh
2.
3.#!/bin/sh
4.function check_load(){
5.        warn=$1
6.        critical=$2
7.        result=`$BASE/monitor/check_load  -w $warn,$warn,$warn -c $critical,$critical,$critical`
8.        echo $result
9.}
10.
11.function analysis() {
12.        content=$1
13.        if [ "$content" = "" ] ; then
14.                continue
15.        fi
16.        match=`echo $content | grep -oP '(OK|WARNING|CRITICAL)'`
17.        case "$match" in
18.                OK )
19.                        ;;
20.                WARNING )
21.                        sendsms "$content" ##短信发送
22.                        ;;
23.                CRITICAL )
24.                        sendsms "$content" ##短信发送
25.                        ;;
26.        esac
27.        echo "`date`:$content"
28.}
29.
30.function sendsms() {
31.        local msg=$1
32.        $BASE/fetion.sh $FETION_MOBILE $FETION_PWD $FETION_TO "$msg"
33.}
34.
35.function start(){
36.        method=$1
37.        if [ "$method" = "" ] ; then
38.                echo "you should input monitor method:"
39.        fi
40.        result=`$*` ##调用具体的监控方法获取返回值
41.        analysis "`hostname`:$result"
42.}
43.
44.start $*  ##执行入口

说明:

*  $BASE/monitor/check_load  这个是从nagions监控中拷贝出来的脚本

*  最后的运行也是通过crontab进行调度控制 

1.*/5 * * * * monitor.sh check_load 8 16 1>>/tmp/monitor.log 2>&1  

其他的check_memory,check_tcp_status,check_disk等等,就大家去发挥吧

最后

  1. 其实可以做的事情还有很多,大家充分发挥一下自己的想象力吧
  2. 目前fetion能解决短信发送的问题,大家结合一下那 139邮箱的例子,就可以解决一个接受短信问题,接受短信指令后做相应的处理,发展情景无限哈。

不过现在的http://www.it-adv.net/更新速度还是蛮快的,这也可以省去我自己分析协议更新不够勤快的烦恼。

时间: 2025-01-20 09:15:44

fetion发送短信介绍(比如天气预报)的相关文章

基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)_jquery

相关阅读: 基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能) 今天测试提了一个bug,发送短信倒计时功能,要求关闭页面也要进行倒计时.这想到了,当年我参与的周杰伦演唱会的先付先抢功能.与之类似,只不过,那个项目的时间都是服务器时间,本人目前有点偷懒,就用客户端的时间了. 一下是完整的代码,只不过在客户端的效率不是很好. <!doctype html> <html lang="en"> <head> <meta

使用python移动飞信模块发送短信

 作者:miaoo 1.应用场景 由于自己做的一个系统需要用到发送短信到自己手机的功能,于是搜索了一下,发现了一个通过移动飞信通道发送短信开源库:PyFetion PyFetion 模拟实现了飞信的通信协议,所以能够实现的功能非常多:短信收发.好友管理.修改状态等等等. 但是,由于我只需要发送短信,所以其它功能都很多余:再加上使用PyFetion 登录飞信时可能需要输入验证码,所以不太适合自动化系统的调用. 继续搜索发现了飞信为手机用户提供了一个wap站点:http://f.10086.cn P

在命令行下发送短信

飞信是个不错的业务,可以通过PC端免费发短信,如果以后能一直免费下去那就是非常不错啦(奸笑ing).为了能在 Linux 下使用,已经有不少人分析出了飞信的通信协议,比如开源的 libfection.还有一些是网页版的工具,比如"https://fetionapi.appspot.com/".有了这些前辈们的贡献,我们就可以很轻松地写一个 Shell 脚本来实现在命令行下发送短信了. #!/bin/sh # define default value URL='https://fetio

广东移动用户3小时发送短信2.4亿条

新快报讯(记者曲瑜通讯员陶国睿)10月1日举办的盛大阅兵式和各种庆祝活动成为举国关注的焦点,在阅兵式和文艺表演期间,通过短信.电话等方式互致对祖国的祝福也成为国庆当日的一景.记者从http://www.aliyun.com/zixun/aggregation/30795.html">广东移动了解到,10月1日9时至10时,移动电话通话量为最高峰,达123.7万爱尔兰,比去年同期增长16.8%.而截至当日12时,广东移动用户发送短信达 2.4亿条,比去年同期增长29.56%,彩信发送量则达7

基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)_javascript技巧

相关阅读: 基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭) 下面一段代码是小编给大家带来的js发送短信验证码后实现倒计时功能,代码简单易懂. 具体代码如下所示: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus

Laravel框架实现发送短信验证功能代码_php实例

Laravel框架简介: Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于表达力. Laravel短信验证思路详解 今天在做到用户注册和个人中心的安全管理时,我实现借助第三方短信平台在Laravel框架中进行手机验证的设置; 由于我做的是一个为客户提供医疗咨询和保健品网站,所以我们对客户个人隐私的保护显得尤为重要,因而在客户登录后进入个人中心前,

java发送短信系列之限制发送频率_java

本篇是发送短信的第二部分, 这里我们介绍一下如何限制向同一个用户(根据手机号和ip)发送短信的频率. 1.使用session 如果是web程序, 那么在session中记录上次发送的时间也可以, 但是可以被绕过去. 最简单的, 直接重启浏览器 或者 清除cache等可以标记session的数据, 那么就可以绕过session中的记录. 虽然很多人都不是计算机专业的, 也没学过这些. 但是我们需要注意的是, 之所以限制发送频率, 是为了防止"短信炸弹", 也就是有人恶意的频繁的请求向某个

python使用PyFetion来发送短信的例子_python

通过PyFetion可以很方便的使用python来用飞信发送短信,下面贴出代码: 复制代码 代码如下: from fetion import * import os def SendSMS(sms):    myphone = 'xxxxxx'    mypwd = 'oooooooooo'    tophone = 'oxoxoxoxoxox'     fetion = PyFetion(myphone,mypwd,'TCP')    fetion.login(FetionHidden)   

PHP发送短信代码分享_php技巧

方法一(比较好,推荐) //PHP发送短信 Monxin专用(PHP代码函数) //本代码基于Monxin 运行 //代码来源:Monxin ./config/functions.php function sms($config,$language,$pdo,$sender,$phone_number,$content){ //demo var_dump(sms(self::$config,self::$language,$pdo,"system","18074507509,