MENU

Google Voice 收发短信API函数

December 17, 2020 • 已被 1435 位童鞋围观过 • 代码分享

自己写的新的接口,之前Google关闭了中间件,导致协议失效 重新更新接口

/*****************************************************Google Voice*****************************************************/
/**
 * @desc Google Voice 接收短信
 * @bash命令  bash命令
 * @return array
 */
function Voice_Receive_Sms($bash) {
    $Post=Json_Voice($bash);
    $html_arr=Get_Web_Contents($Post["url"],"POST",$Post["data"],'',$Post["header"]);
    $response=$html_arr["Body"];
    $data=json_decode($response,true);
    //授权失败
    if(isset($data["error"]) and $data["error"]["errors"][0]["location"] == "Authorization"){
        return "Authorization";
    }
    //返回错误数组
    if(isset($data["error"])){
        return "error";
    }
    //返回结果为数组时候 $data[0]为空
    if(empty($data[0]) and !empty($data[2])){
        return "nothing";
    }else{
        $r=0;
        foreach($data[0] as $k => $v){
            foreach($v[2] as $m => $n){
                $message[$r]["From"]=$n[3][0];
                $message[$r]["To"]=$n[2];
                if($n[12]==6){
                    $message[$r]["From"]=$n[2];
                    $message[$r]["To"]=$n[3][0];
                }
                $message[$r]["Data"]=delbr($n[9]);
                $message[$r]["Time"]=nicetime(round($n[1]/1000));
                $message[$r]["TimeUnix"]=round($n[1]/1000);
                $message[$r]["MessageId"]=$n[0];
                $r++;
            }
        }
        $message=array_values(arraySort($message, 'TimeUnix', 'desc'));
        return $message;
    }
}

/**
 * @desc Google Voice 只读取接收到的短信,不再读取自己发送的短信
 * @bash命令  bash命令
 * @return array
 */
function Voice_Read_Sms($bash) {
    $Post=Json_Voice($bash);
    $html_arr=Get_Web_Contents($Post["url"],"POST",$Post["data"],'',$Post["header"]);
    $response=$html_arr["Body"];
    $data=json_decode($response,true);
    //授权失败
    if(isset($data["error"]) and $data["error"]["errors"][0]["location"] == "Authorization"){
        return "Authorization";
    }
    //返回错误数组
    if(isset($data["error"])){
        return "error";
    }
    //返回结果为数组时候 $data[0]为空
    if(empty($data[0]) and !empty($data[2])){
        return "nothing";
    }else{
        $r=0;
        foreach($data[0] as $k => $v){
            foreach($v[2] as $m => $n){
                if($n[12]==5){
                    $message[$r]["From"]=$n[3][0];
                    $message[$r]["To"]=$n[2];
                    $message[$r]["Data"]=delbr($n[9]);
                    $message[$r]["Time"]=nicetime(round($n[1]/1000));
                    $message[$r]["TimeUnix"]=round($n[1]/1000);
                    $message[$r]["MessageId"]=$n[0];
                    $r++;
                }
            }
        }
        $message=array_values(arraySort($message, 'TimeUnix', 'desc'));
        return $message;
    }
}

/**
 * @desc Google Voice 接收指定号码短信
 * @tel     指定电话号码
 * @bash命令  bash命令
 * @return array
 */
function Voice_Responses_Sms($tel,$bash) {
    $Post=Json_Voice($bash);
    $Post["data"]=str_replace("888888888", $tel, $Post["data"]);
    $html_arr=Get_Web_Contents($Post["url"],"POST",$Post["data"],'',$Post["header"]);
    $response=$html_arr["Body"];
    $data=json_decode($response,true);
    //授权失败
    if(isset($data["error"]) and $data["error"]["errors"][0]["location"] == "Authorization"){
        return "Authorization";
    }
    //返回结果不是数组
    if(!isset($data[0])){
        return "error";
    }
    //返回结果为数组时候 $data[0]为空
    if(empty($data[0]) and !empty($data[2])){
        return "nothing";
    }else{
        $r=0;
        foreach($data[0][2] as $k => $v){
            $message[$r]["From"]=$v[3][0];
            $message[$r]["To"]=$v[2];
            if($v[12]==6){
                $message[$r]["From"]=$v[2];
                $message[$r]["To"]=$v[3][0];
            }
            $message[$r]["Data"]=delbr($v[9]);
            $message[$r]["Time"]=nicetime(round($v[1]/1000));
            $message[$r]["TimeUnix"]=round($v[1]/1000);
            $message[$r]["MessageId"]=$v[0];
            $r++;
        }
        return $message;
    }
}
/**
 * @desc    Google Voice 发送短信
 * @tel     接收短信的号码
 * @message 短信内容
 * @bash命令  bash命令 文件地址
 * @return array
 */
function Voice_Send_Sms($tel,$message,$bash) {
    $Post=Json_Voice($bash);
    //处理一下数据
    $Post["data"]=str_replace("999999999", $message, $Post["data"]);
    $Post["data"]=str_replace("888888888", $tel, $Post["data"]);
    $html_arr=Get_Web_Contents($Post["url"],"POST",$Post["data"],'',$Post["header"]);
    $response=$html_arr["Body"];
    $data=json_decode($response,true);
    //授权失败
    if(isset($data["error"]) and $data["error"]["errors"][0]["location"] == "Authorization"){
        return "Authorization";
    }
    //号码失效
    if(isset($data["error"]) and $data["error"]["errors"][0]["reason"] == "INVALID_ARGUMENT"){
        return "err_number";
    }
    //返回错误数组
    if(isset($data["error"])){
        return "error";
    }else{
        $redata["Success"]=true;;
        $redata["TimeUnix"]=round($data[3]/1000);
        $redata["MessageId"]=$data[2];
        return $redata;
    }

}
Last Modified: September 28, 2023
Leave a Comment

9 Comments
  1. floyd floyd

    您好,请问怎么联系您,qq或者微信

    1. Yooer Yooer

      @floyd商业项目,你懂得。

    2. floyd floyd

      @Yooer怎么联系

    3. floyd floyd

      @Yooer明白,留个联系方式

    4. Yooer Yooer

      @floyd低于5位数,就不要想了。这个是很完整很完整的一套东西。

    5. floyd floyd

      @Yooer联系方式

    6. floyd floyd

      @Yooer可以吗?方便的话请联系我的邮箱[email protected]

    7. floyd floyd

      @Yooer我的vx(base64解密三次):V1ZkT2FtTXpVblpqYlZZd1lqTkJQUT09
      有意

  2. 匆匆的过客 匆匆的过客

    有个问题想探讨一下,你登陆,开源的那些php版本的登陆都失效了,Google升级了。现在你是使用OAUTH 2.0做登陆认证么?