[文章作者:张宴 本文版本:v1.1 最后修改:2010.08.03 转载请注明原文链接:http://blog.zyan.cc/fetion_api/]
备注:2010年7月底移动飞信修改协议,造成影响的 sms.api.bz 免费发送短信API接口,已于2010年8月3日19:00恢复正常。
飞信是由中国移动通信集团公司推出的一款集商务应用和娱乐功能为一体的,基于手机应用以及与Internet深度互通的即时通讯产品,可免费给好友发送短信。
1、下载中国移动飞信PC客户端软件(http://www.fetion.com.cn/downloads/pc.aspx),并注册开通飞信。注册成为飞信用户,下载飞信PC客户端、使用PC客户端基本功能,不收取费用。
2、通过PC客户端,邀请并添加免费短信接收方的手机号码(仅限中国移动)到您的飞信好友,该手机号需要通过通过PC客户端、或回复短信接受您的邀请;
3、通过 http://sms.api.bz/ 提供的 API 接口,即可免费给飞信好友或给你自己的手机发短信。利用本API接口可进行日程提醒、服务器监控、报警、故障通知或短信自动控制等功能。
飞信免费发短信API接口在线演示页面:
http://sms.api.bz/
https://sms.api.bz/ (HTTPS加密接口)
飞信免费发短信API接口调用方式(通过HTTP访问以下网址、支持GET和POST):
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。
2009年5月28日新增:飞信免费发短信API接口调用方式(通过HTTPS加密隧道访问以下网址、支持GET和POST,进一步保证您的密码安全):
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。
例1:在Linux命令行下通过curl命令给自己的手机号(假设为13800138000)发送短信(HTTP GET 方式)
例2:在PHP5中通过file_get_contents函数发送短信(HTTP GET 方式)
例3:在PHP中通过curl发送短信(HTTP POST 方式)
备注:9日移动飞信升级造成影响的 sms.api.bz 免费发送短信API接口,已于2009年12月14日恢复正常。
2009年12月9日中国移动飞信服务器升级,变更了登录地址和部分协议。升级后的协议无法直接给接收方手机号(tel)发送短信,只能给飞信号(sip uri)、自己的手机号发送短信。本人通过重新抓包,对飞信协议进行分析,修改了sms.api.bz接口代码,通过将接收方手机号(tel)转换为user-id,再通过user-id转换为飞信号(sip uri),进行短信发送,一切OK。
备注:2010年7月底移动飞信修改协议,造成影响的 sms.api.bz 免费发送短信API接口,已于2010年8月3日19:00恢复正常。
飞信是由中国移动通信集团公司推出的一款集商务应用和娱乐功能为一体的,基于手机应用以及与Internet深度互通的即时通讯产品,可免费给好友发送短信。
1、下载中国移动飞信PC客户端软件(http://www.fetion.com.cn/downloads/pc.aspx),并注册开通飞信。注册成为飞信用户,下载飞信PC客户端、使用PC客户端基本功能,不收取费用。
2、通过PC客户端,邀请并添加免费短信接收方的手机号码(仅限中国移动)到您的飞信好友,该手机号需要通过通过PC客户端、或回复短信接受您的邀请;
3、通过 http://sms.api.bz/ 提供的 API 接口,即可免费给飞信好友或给你自己的手机发短信。利用本API接口可进行日程提醒、服务器监控、报警、故障通知或短信自动控制等功能。
飞信免费发短信API接口在线演示页面:
http://sms.api.bz/
https://sms.api.bz/ (HTTPS加密接口)
飞信免费发短信API接口调用方式(通过HTTP访问以下网址、支持GET和POST):
http://sms.api.bz/fetion.php?username=您的移动飞信登录手机号&password=您的移动飞信登录密码&sendto=接收短信的飞信好友手机号(也可以是你自己的手机号)&message=短信内容
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。
2009年5月28日新增:飞信免费发短信API接口调用方式(通过HTTPS加密隧道访问以下网址、支持GET和POST,进一步保证您的密码安全):
https://sms.api.bz/fetion.php?username=您的移动飞信登录手机号&password=您的移动飞信登录密码&sendto=接收短信的飞信好友手机号(也可以是你自己的手机号)&message=短信内容
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。
例1:在Linux命令行下通过curl命令给自己的手机号(假设为13800138000)发送短信(HTTP GET 方式)
curl "http://sms.api.bz/fetion.php?username=13800138000&password=123456&sendto=13800138000&message=短信内容"
例2:在PHP5中通过file_get_contents函数发送短信(HTTP GET 方式)
例3:在PHP中通过curl发送短信(HTTP POST 方式)
备注:9日移动飞信升级造成影响的 sms.api.bz 免费发送短信API接口,已于2009年12月14日恢复正常。
2009年12月9日中国移动飞信服务器升级,变更了登录地址和部分协议。升级后的协议无法直接给接收方手机号(tel)发送短信,只能给飞信号(sip uri)、自己的手机号发送短信。本人通过重新抓包,对飞信协议进行分析,修改了sms.api.bz接口代码,通过将接收方手机号(tel)转换为user-id,再通过user-id转换为飞信号(sip uri),进行短信发送,一切OK。
飞信密码与其他密码不同,只要手机是你自己的,就算密码被盗,也可以通过手机短信进行密码重置。可以通过2008版飞信PC客户端登录界面的“设置密码”按照提示进行密码重置操作,也可以通过手机短信编辑6-16位非中文字符、全角字符到12520050做密码重置。
2008版飞信PC客户端重置密码界面见下图:
点击在新窗口中浏览此图片
http://blog.s135.com/attachment/200903/fetion_mm.png
如果我自己的论坛想要 给会员注册的时候 发一个验证码。 不是我的飞信好友,能发吗? 貌似不行!
还有就是, 如何避免别人那你这个东西,传播反社会的东西呢?
移动真的不收费吗? 如果我拿你这个API一天发一万个短信, 也免费?
飞信的官方网站有短信免费的明确介绍:
http://www.fetion.com.cn/aboutus.aspx
飞信不但可以免费从PC给手机发短信,而且不受任何限制。
提示:
错误。每一项必须填写。
http://download.csdn.net/source/1148854
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
CString url;
url.Format("/fetion.php?username=%s&password=%s&sendto=%s&message=%s",usrname,pwd,recvusr,message);
DWORD dwRet;
char szBuff[1024]={0};
try
{
CString strServerName;
//INTERNET_PORT nPort;
pServer = session.GetHttpConnection("http://sms.api.bz", INTERNET_PORT(80));
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET, url);
pFile->AddRequestHeaders("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*");
pFile->AddRequestHeaders("Referer: http://sms.api.bz");
pFile->AddRequestHeaders("Accept-Language: zh-cn");
pFile->AddRequestHeaders("Content-Type: multipart/form-data; boundary=---------------------------7d11dc24268052c");
pFile->AddRequestHeaders("Accept-Encoding: gzip, deflate");
pFile->AddRequestHeaders("User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
pFile->AddRequestHeaders("Content-Length: 1351");
pFile->AddRequestHeaders("Connection: Keep-Alive");
pFile->AddRequestHeaders("Cache-Control: no-cache");
//pFile->AddRequestHeaders(szHeaders);
pFile->SendRequest();
pFile->QueryInfoStatusCode(dwRet);
if (dwRet == HTTP_STATUS_OK)
{
UINT nRead = pFile->Read(szBuff, 1023);
}
delete pFile;
delete pServer;
}
catch (CInternetException* e)
{
char buf[MAX_PATH];
e->GetErrorMessage(buf,MAX_PATH,NULL);
MessageBox(NULL,buf,"错误",MB_OK);
return 0;
}
session.Close();
//发不出去。郁闷 返回的是
<!--
此文件用于由lighttpd或nginx转发过来的请求
-->
CString strSentence, strWriteName;
strWriteName.Format("username=%s&password=%s&sendto=%s&message=%s",usrname,pwd,recvusr,message);
CString strFileName="http://sms.api.bz/fetion.php?" + strWriteName;
CInternetSession sess;
CHttpFile* fileGet;
try
{
fileGet=(CHttpFile*)sess.OpenURL(strFileName);
}
catch(CException* e)
{
fileGet = 0;
throw;
}
if(fileGet)
{
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = fileGet->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
if( bSuccess && dwStatus>= 200&& dwStatus<300 )
{
CStdioFile fileWrite;
if(fileWrite.Open(strWriteName, CFile::modeWrite|CFile::modeCreate))
{
while(fileGet->ReadString(strSentence))
{
fileWrite.WriteString(strSentence+"\n");
}
fileWrite.Close();
AfxMessageBox("下载完毕");
}
else
{
AfxMessageBox("本地文件"+strWriteName+"打开出错.");
}
}
else
{
strSentence.Format("打开网页文件出错,错误码:%d", dwStatus);
AfxMessageBox(strSentence);
}
fileGet->Close();
delete fileGet;
}
else
AfxMessageBox("不能找到网页文件!");
sess.Close();