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

来源:互联网 发布:linux日志收集 编辑:程序博客网 时间:2024/05/17 23:35

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

  [文章作者:张宴 本文版本:v1.0 最后修改:2009.03.22 转载请注明原文链接:http://blog.s135.com/fetion_api/]

  飞信是由中国移动通信集团公司推出的一款集商务应用和娱乐功能为一体的,基于手机应用以及与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加密接口,采用 EssentialSSL CA 颁发的可信任SSL证书)

 

  飞信免费发短信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 方式)

view plaincopy to clipboardprint?
<?php  
$url = "http://sms.api.bz/fetion.php?username=13812345678&password=123456&sendto=13512345678&message=短信内容";  
$result = file_get_contents($url);  
echo $result; //返回信息默认为UTF-8编码的汉字,如果你的页面编码为gb2312,请使用下行语句输出返回信息。  
//echo iconv("UTF-8", "GBK", $result);  
?> 
<?php
$url = "http://sms.api.bz/fetion.php?username=13812345678&password=123456&sendto=13512345678&message=短信内容";
$result = file_get_contents($url);
echo $result; //返回信息默认为UTF-8编码的汉字,如果你的页面编码为gb2312,请使用下行语句输出返回信息。
//echo iconv("UTF-8", "GBK", $result);
?>
  例3:在PHP中通过curl发送短信(HTTP POST 方式)
view plaincopy to clipboardprint?
<?php  
$data["username"] = 13812345678;  
$data["password"] = "password123";  
$data["sendto"] = 13512345678;  
$data["message"] = "这是一条测试短信!";  
 
$curl = new Curl_Class();  
$result = @$curl->post("http://sms.api.bz/fetion.php", $data);  
echo $result; //返回信息默认为UTF-8编码的汉字,如果你的页面编码为gb2312,请使用下行语句输出返回信息。  
//echo iconv("UTF-8", "GBK", $result);  
 
//curl类  
class Curl_Class  
{  
    function Curl_Class()  
    {  
        return true;  
    }  
 
    function execute($method, $url, $fields = '', $userAgent = '', $httpHeaders = '', $username = '', $password = '')  
    {  
        $ch = Curl_Class::create();  
        if (false === $ch)  
        {  
            return false;  
        }  
 
        if (is_string($url) && strlen($url))  
        {  
            $ret = curl_setopt($ch, CURLOPT_URL, $url);  
        }  
        else 
        {  
            return false;  
        }  
        //是否显示头部信息  
        curl_setopt($ch, CURLOPT_HEADER, false);  
        //  
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
 
        if ($username != '')  
        {  
            curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);  
        }  
 
        $method = strtolower($method);  
        if ('post' == $method)  
        {  
            curl_setopt($ch, CURLOPT_POST, true);  
            if (is_array($fields))  
            {  
                $sets = array();  
                foreach ($fields AS $key => $val)  
                {  
                    $sets[] = $key . '=' . urlencode($val);  
                }  
                $fields = implode('&',$sets);  
            }  
            curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);  
        }  
        else if ('put' == $method)  
        {  
            curl_setopt($ch, CURLOPT_PUT, true);  
        }  
 
        //curl_setopt($ch, CURLOPT_PROGRESS, true);  
        //curl_setopt($ch, CURLOPT_VERBOSE, true);  
        //curl_setopt($ch, CURLOPT_MUTE, false);  
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);//设置curl超时秒数  
 
        if (strlen($userAgent))  
        {  
            curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);  
        }  
 
        if (is_array($httpHeaders))  
        {  
            curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders);  
        }  
 
        $ret = curl_exec($ch);  
 
        if (curl_errno($ch))  
        {  
            curl_close($ch);  
            return array(curl_error($ch), curl_errno($ch));  
        }  
        else 
        {  
            curl_close($ch);  
            if (!is_string($ret) || !strlen($ret))  
            {  
                return false;  
            }  
            return $ret;  
        }  
    }  
 
    function post($url, $fields, $userAgent = '', $httpHeaders = '', $username = '', $password = '')  
    {  
        $ret = Curl_Class::execute('POST', $url, $fields, $userAgent, $httpHeaders, $username, $password);  
        if (false === $ret)  
        {  
            return false;  
        }  
 
        if (is_array($ret))  
        {  
            return false;  
        }  
        return $ret;  
    }  
 
    function get($url, $userAgent = '', $httpHeaders = '', $username = '', $password = '')  
    {  
        $ret = Curl_Class::execute('GET', $url, '', $userAgent, $httpHeaders, $username, $password);  
        if (false === $ret)  
        {  
            return false;  
        }  
 
        if (is_array($ret))  
        {  
            return false;  
        }  
        return $ret;  
    }  
 
    function create()  
    {  
        $ch = null;  
        if (!function_exists('curl_init'))  
        {  
            return false;  
        }  
        $ch = curl_init();  
        if (!is_resource($ch))  
        {  
            return false;  
        }  
        return $ch;  
    }  
 
}  
?> 
<?php
$data["username"] = 13812345678;
$data["password"] = "password123";
$data["sendto"] = 13512345678;
$data["message"] = "这是一条测试短信!";

$curl = new Curl_Class();
$result = @$curl->post("http://sms.api.bz/fetion.php", $data);
echo $result; //返回信息默认为UTF-8编码的汉字,如果你的页面编码为gb2312,请使用下行语句输出返回信息。
//echo iconv("UTF-8", "GBK", $result);

//curl类
class Curl_Class
{
    function Curl_Class()
    {
        return true;
    }

    function execute($method, $url, $fields = '', $userAgent = '', $httpHeaders = '', $username = '', $password = '')
    {
        $ch = Curl_Class::create();
        if (false === $ch)
        {
            return false;
        }

        if (is_string($url) && strlen($url))
        {
            $ret = curl_setopt($ch, CURLOPT_URL, $url);
        }
        else
        {
            return false;
        }
        //是否显示头部信息
        curl_setopt($ch, CURLOPT_HEADER, false);
        //
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        if ($username != '')
        {
            curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
        }

        $method = strtolower($method);
        if ('post' == $method)
        {
            curl_setopt($ch, CURLOPT_POST, true);
            if (is_array($fields))
            {
                $sets = array();
                foreach ($fields AS $key => $val)
                {
                    $sets[] = $key . '=' . urlencode($val);
                }
                $fields = implode('&',$sets);
            }
            curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
        }
        else if ('put' == $method)
        {
            curl_setopt($ch, CURLOPT_PUT, true);
        }

        //curl_setopt($ch, CURLOPT_PROGRESS, true);
        //curl_setopt($ch, CURLOPT_VERBOSE, true);
        //curl_setopt($ch, CURLOPT_MUTE, false);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);//设置curl超时秒数

        if (strlen($userAgent))
        {
            curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
        }

        if (is_array($httpHeaders))
        {
            curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders);
        }

        $ret = curl_exec($ch);

        if (curl_errno($ch))
        {
            curl_close($ch);
            return array(curl_error($ch), curl_errno($ch));
        }
        else
        {
            curl_close($ch);
            if (!is_string($ret) || !strlen($ret))
            {
                return false;
            }
            return $ret;
        }
    }

    function post($url, $fields, $userAgent = '', $httpHeaders = '', $username = '', $password = '')
    {
        $ret = Curl_Class::execute('POST', $url, $fields, $userAgent, $httpHeaders, $username, $password);
        if (false === $ret)
        {
            return false;
        }

        if (is_array($ret))
        {
            return false;
        }
        return $ret;
    }

    function get($url, $userAgent = '', $httpHeaders = '', $username = '', $password = '')
    {
        $ret = Curl_Class::execute('GET', $url, '', $userAgent, $httpHeaders, $username, $password);
        if (false === $ret)
        {
            return false;
        }

        if (is_array($ret))
        {
            return false;
        }
        return $ret;
    }

    function create()
    {
        $ch = null;
        if (!function_exists('curl_init'))
        {
            return false;
        }
        $ch = curl_init();
        if (!is_resource($ch))
        {
            return false;
        }
        return $ch;
    }

}
?>