用libfetion发短信
fetion 是中国移动推出的即使通讯工具,集成了自家短信功能,利用飞信可以方便给自己的好友发短信,而且还是免费的。
libfetion是国内邓东东的项目,目标原本是为飞信提供免费、开源的协议库,;不过当前短信群发遭到打压,不少短信接口被封,作者也有所顾虑,对项目采取了谨慎的态度,比如:
1. 不公开源码
2. 在windows上,作者甚至不提供连接库,基本上无法二次开发;
3. 在linux上,提供32位和64位连接库, 对二次开发影响不是很大;
本文只是提供一个用libfetion发短信的简单示例,但麻雀虽小,五脏俱全。
1 . 下载 http://libfetion-gui.googlecode.com/files/linux_fetion_0.9.3.tar.gz, 并解压, 提取二次开发需要的头文件、连接库
mkdir /tmp/sms
cd /tmp/sms
mkdir example
wget http://libfetion-gui.googlecode.com/files/linux_fetion_0.9.3.tar.gz
tar zxvf linux_fetion_0.9.3.tar.gz
cp linux_fetion_0.9.3/libfetion example/ -r
cp linux_fetion_0.9.3/lib example/ -r
cd example
2. 书写源代码
vi test.cpp
#include <stdio.h>
#include <stdlib.h>
#include "libfetion/libfetion.h"
int main()
{
//init the libfetion frist
if (!fx_init())
{
fprintf(stderr, "init the app fail ");
exit(0);
}
//login the fetion
//飞信 用户名和密码
if(!fs_login("1386424016x", "xxxxxxx"))
{
fprintf(stderr, "login fail ");
exit(0);
}
//发送短信
//fs_send_sms_to_self("你好吗");
if(!fs_send_sms_by_mobile_no("1386424016x", "你好吗"))
{
fprintf(stderr, "send fail ");
}
//login out ....
fx_loginout();
//destroy the libfetion
fx_terminate();
}
3. 编译
gcc test.cpp lib/libfetion_64.a -I "./" -lstdc++ -lcurl -lssl -pthread
4. 执行测试
./a.out
至此, 这个小小的程序已经具有发短信的功能了。对照网上其他的资源,以下几点需要注意:
1. 有人说libfetion不支持直接对手机号发短信, 这是错误的。大家可以看看开发文档,fs_send_sms_by_mobile_no 就是实现此功能的函数;
2. linux_fetion_0.9.3 的连接库在某些平台上可以存在问题,提示lib/libfetion_64.a: file not recognized: File format not recognized, 可以试一下低版本的,比如 0.9.2
3. libfetion只能给飞信上的好友发短信;
4. 把此功能用于系统报警等,十分的爽,免费, 而且延迟比较小......
libfetion是国内邓东东的项目,目标原本是为飞信提供免费、开源的协议库,;不过当前短信群发遭到打压,不少短信接口被封,作者也有所顾虑,对项目采取了谨慎的态度,比如:
1. 不公开源码
2. 在windows上,作者甚至不提供连接库,基本上无法二次开发;
3. 在linux上,提供32位和64位连接库, 对二次开发影响不是很大;
本文只是提供一个用libfetion发短信的简单示例,但麻雀虽小,五脏俱全。
1 . 下载 http://libfetion-gui.googlecode.com/files/linux_fetion_0.9.3.tar.gz, 并解压, 提取二次开发需要的头文件、连接库
mkdir /tmp/sms
cd /tmp/sms
mkdir example
wget http://libfetion-gui.googlecode.com/files/linux_fetion_0.9.3.tar.gz
tar zxvf linux_fetion_0.9.3.tar.gz
cp linux_fetion_0.9.3/libfetion example/ -r
cp linux_fetion_0.9.3/lib example/ -r
cd example
2. 书写源代码
vi test.cpp
#include <stdio.h>
#include <stdlib.h>
#include "libfetion/libfetion.h"
int main()
{
//init the libfetion frist
if (!fx_init())
{
fprintf(stderr, "init the app fail ");
exit(0);
}
//login the fetion
//飞信 用户名和密码
if(!fs_login("1386424016x", "xxxxxxx"))
{
fprintf(stderr, "login fail ");
exit(0);
}
//发送短信
//fs_send_sms_to_self("你好吗");
if(!fs_send_sms_by_mobile_no("1386424016x", "你好吗"))
{
fprintf(stderr, "send fail ");
}
//login out ....
fx_loginout();
//destroy the libfetion
fx_terminate();
}
3. 编译
gcc test.cpp lib/libfetion_64.a -I "./" -lstdc++ -lcurl -lssl -pthread
4. 执行测试
./a.out
至此, 这个小小的程序已经具有发短信的功能了。对照网上其他的资源,以下几点需要注意:
1. 有人说libfetion不支持直接对手机号发短信, 这是错误的。大家可以看看开发文档,fs_send_sms_by_mobile_no 就是实现此功能的函数;
2. linux_fetion_0.9.3 的连接库在某些平台上可以存在问题,提示lib/libfetion_64.a: file not recognized: File format not recognized, 可以试一下低版本的,比如 0.9.2
3. libfetion只能给飞信上的好友发短信;
4. 把此功能用于系统报警等,十分的爽,免费, 而且延迟比较小......