`
liangjian103
  • 浏览: 177023 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

中国移动飞信免费发短信API接口(第三方 Fetion API)

阅读更多

[文章作者:张宴 本文版本:v1.1 最后修改:2010.08.03 转载请注明原文链接:http://blog.s135.com/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):

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 方式)


  1. <?php  
  2. $url  =  "http://sms.api.bz/fetion.php?username=13812345678&password=123456&sendto=13512345678&message=短信内容" ;  
  3. $result  =  file_get_contents ( $url );  
  4. echo   $result //返回信息默认为UTF-8编码的汉字,如果你的页面编码为gb2312,请使用下行语句输出返回信息。   
  5. //echo iconv("UTF-8", "GBK", $result);   
  6. ?>  


  例3:在PHP中通过curl发送短信(HTTP POST 方式)


  1. <?php  
  2. $data [ "username" ] = 13812345678;  
  3. $data [ "password" ] =  "password123" ;  
  4. $data [ "sendto" ] = 13512345678;  
  5. $data [ "message" ] =  "这是一条测试短信!" ;  
  6.   
  7. $curl  =  new  Curl_Class();  
  8. $result  = @ $curl ->post( "http://sms.api.bz/fetion.php" $data );  
  9. echo   $result //返回信息默认为UTF-8编码的汉字,如果你的页面编码为gb2312,请使用下行语句输出返回信息。   
  10. //echo iconv("UTF-8", "GBK", $result);   
  11.   
  12. //curl类   
  13. class  Curl_Class  
  14. {  
  15.     function  Curl_Class()  
  16.     {  
  17.         return  true;  
  18.     }  
  19.   
  20.     function  execute( $method $url $fields  =  '' $userAgent  =  '' $httpHeaders  =  '' $username  =  '' $password  =  '' )  
  21.     {  
  22.         $ch  = Curl_Class::create();  
  23.         if  (false ===  $ch )  
  24.         {  
  25.             return  false;  
  26.         }  
  27.   
  28.         if  ( is_string ( $url ) &&  strlen ( $url ))  
  29.         {  
  30.             $ret  = curl_setopt( $ch , CURLOPT_URL,  $url );  
  31.         }  
  32.         else   
  33.         {  
  34.             return  false;  
  35.         }  
  36.         //是否显示头部信息   
  37.         curl_setopt($ch , CURLOPT_HEADER, false);  
  38.         //   
  39.         curl_setopt($ch , CURLOPT_RETURNTRANSFER, true);  
  40.   
  41.         if  ( $username  !=  '' )  
  42.         {  
  43.             curl_setopt($ch , CURLOPT_USERPWD,  $username  .  ':'  .  $password );  
  44.         }  
  45.   
  46.         $method  =  strtolower ( $method );  
  47.         if  ( 'post'  ==  $method )  
  48.         {  
  49.             curl_setopt($ch , CURLOPT_POST, true);  
  50.             if  ( is_array ( $fields ))  
  51.             {  
  52.                 $sets  =  array ();  
  53.                 foreach  ( $fields  AS  $key  =>  $val )  
  54.                 {  
  55.                     $sets [] =  $key  .  '='  . urlencode( $val );  
  56.                 }  
  57.                 $fields  = implode( '&' , $sets );  
  58.             }  
  59.             curl_setopt($ch , CURLOPT_POSTFIELDS,  $fields );  
  60.         }  
  61.         else   if  ( 'put'  ==  $method )  
  62.         {  
  63.             curl_setopt($ch , CURLOPT_PUT, true);  
  64.         }  
  65.   
  66.         //curl_setopt($ch, CURLOPT_PROGRESS, true);   
  67.         //curl_setopt($ch, CURLOPT_VERBOSE, true);   
  68.         //curl_setopt($ch, CURLOPT_MUTE, false);   
  69.         curl_setopt($ch , CURLOPT_TIMEOUT, 10); //设置curl超时秒数   
  70.   
  71.         if  ( strlen ( $userAgent ))  
  72.         {  
  73.             curl_setopt($ch , CURLOPT_USERAGENT,  $userAgent );  
  74.         }  
  75.   
  76.         if  ( is_array ( $httpHeaders ))  
  77.         {  
  78.             curl_setopt($ch , CURLOPT_HTTPHEADER,  $httpHeaders );  
  79.         }  
  80.   
  81.         $ret  = curl_exec( $ch );  
  82.   
  83.         if  (curl_errno( $ch ))  
  84.         {  
  85.             curl_close($ch );  
  86.             return   array (curl_error( $ch ), curl_errno( $ch ));  
  87.         }  
  88.         else   
  89.         {  
  90.             curl_close($ch );  
  91.             if  (! is_string ( $ret ) || ! strlen ( $ret ))  
  92.             {  
  93.                 return  false;  
  94.             }  
  95.             return   $ret ;  
  96.         }  
  97.     }  
  98.   
  99.     function  post( $url $fields $userAgent  =  '' $httpHeaders  =  '' $username  =  '' $password  =  '' )  
  100.     {  
  101.         $ret  = Curl_Class::execute( 'POST' $url $fields $userAgent $httpHeaders $username $password );  
  102.         if  (false ===  $ret )  
  103.         {  
  104.             return  false;  
  105.         }  
  106.   
  107.         if  ( is_array ( $ret ))  
  108.         {  
  109.             return  false;  
  110.         }  
  111.         return   $ret ;  
  112.     }  
  113.   
  114.     function  get( $url $userAgent  =  '' $httpHeaders  =  '' $username  =  '' $password  =  '' )  
  115.     {  
  116.         $ret  = Curl_Class::execute( 'GET' $url '' $userAgent $httpHeaders $username $password );  
  117.         if  (false ===  $ret )  
  118.         {  
  119.             return  false;  
  120.         }  
  121.   
  122.         if  ( is_array ( $ret ))  
  123.         {  
  124.             return  false;  
  125.         }  
  126.         return   $ret ;  
  127.     }  
  128.   
  129.     function  create()  
  130.     {  
  131.         $ch  = null;  
  132.         if  (!function_exists( 'curl_init' ))  
  133.         {  
  134.             return  false;  
  135.         }  
  136.         $ch  = curl_init();  
  137.         if  (! is_resource ( $ch ))  
  138.         {  
  139.             return  false;  
  140.         }  
  141.         return   $ch ;  
  142.     }  
  143.   
  144. }  
  145. ?>  


  备注: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。

分享到:
评论

相关推荐

    PHP用飞信接口免费发短信源码 1.0.rar

    描述中提到的 "接口用的是open fetion",这可能是指开发者使用了开源的飞信API库或者第三方服务来与飞信系统进行交互。Open Fetion通常指的是一个允许开发者通过编程方式调用飞信功能的开源项目。这样的接口可能包括...

    PHP用飞信接口免费发短信源码.7z

    在本案例中,"Open Fetion"是一个第三方开发的飞信接口库,使得开发者能够利用PHP进行调用。 首先,理解飞信接口的工作原理是至关重要的。通常,飞信API提供了登录、发送短信、接收短信等基本功能。开发者需要注册...

    java利用飞信API发送短信

    飞信,全称中国移动飞信,是中国移动推出的一款融合通信服务,允许用户通过网络免费向中国移动、中国联通、中国电信的手机和固话发送短信。在本文中,我们将深入探讨如何使用Java来实现这个功能。 首先,你需要获取...

    PB调用飞信免费发短信程序

    【描述】"PowerBuilder调用飞信免费发短信程序"意味着开发者利用PowerBuilder的脚本语言或API接口与飞信客户端(如fetion.exe)进行交互,实现从PB应用中发送短信的功能。这一过程可能涉及到以下步骤: 1. **接口...

    飞信API_jar下载

    飞信,全称为中国移动飞信,是中国移动推出的一款即时通讯软件,允许用户通过网络免费向中国移动、中国联通、中国电信的手机用户发送短信,同时支持语音聊天、群聊等多种通信方式。在Java开发环境中,通过飞信API,...

    飞信 发短信相关dll

    在开发过程中,为了方便第三方应用集成飞信的功能,中国移动提供了飞信SDK(Software Development Kit),其中包含了用于发送短信的相关DLL(动态链接库)文件。在本案例中,我们重点关注的是"Fetion SDK.dll"。 ...

    Java 免费给手机发飞信

    飞信是中国移动推出的一款即时通讯软件,支持跨平台通信,并且可以通过互联网向中国移动手机号码发送免费短信。本示例中的代码主要依赖于一个名为`Fetion`的第三方库来实现飞信消息的发送功能。 #### 二、准备工作 ...

    Fetion SDK Demo

    飞信是中国移动推出的一种即时通讯服务,允许用户通过网络或短信进行免费通信。这个Demo主要是为了展示如何在C#应用程序中集成和使用Fetion SDK来实现发送短信的功能。 首先,我们需要了解Fetion SDK的核心功能。...

    使用PHP免费发送定时短信的实例

    由于飞信目前没有开发平台,现有API都是第三方开发,貌似是通过破解WAP飞信或者3G飞信,模拟浏览器的行为来发短信。另外Google code上有开源的php飞信发送类php-fetion。这些飞信接口方便了定时短信的开发。 背景:...

    飞信测试工具插件 for ShopEX.rar

    飞信,作为中国移动推出的一种即时通讯服务,允许用户通过网络免费发送短信和进行语音聊天。在电子商务场景中,飞信测试工具插件可能被用来增强ShopEX的客户沟通能力,比如自动发送订单确认、发货通知或者促销信息等...

Global site tag (gtag.js) - Google Analytics