现在手机大多使用流量比较多,但是又有老号码不舍得丢掉(不敢丢,绑定了银行、微信、QQ,各种密报等),然后手机📱却又不想佩戴两个手机,于是乎,你可能也和我一样需要将手上的保号手机里面的短信、电话转发到正在使用的手机上面。
如果你新老手机都是iPhone的话,你就可以直接使用帐号之间的同步,直接查看丢在家里的手机短信验证码,而安卓机怎么解决呢🤨
实现原理:
我们需要现在安卓手机里面安装一个叫做短信转发器的开源转发软件,安装之后设置好post设置,将短信等信息提交到api服务器上面,然后将接受到的信息通过 go-cqhttp 发送到新手机上面,其中如果你需要将所有的短信做备份的话,可以在旧手机接收到短信的时候,先保存在api服务器上面的数据库里面。
POST到Api服务器设置说明,下面是我在服务器上面的入库代码:
<?php
header("Content-type: application/json; charset=utf-8");
/* post raw data {
"from": "13312345678",
"content": "13312345678\n晓怒网站(https://xiao.nu)蛮不错的\nSIM1_13512345678\n2021-11-25 22:59:15\nk30u"
}*/
$from = $_POST["from"];
$content = $_POST["content"];
$array = explode("\n", $content);
$sent_to = $array[1];
$message = $array[0];
$d_id = $array[3];
$time = strtotime($array[2]);
$hash = md5($from . $content);
$m_id = $hash;
require_once 'mysql.php';
$config = array(
'DB_HOST' => 'localhost',
'DB_PORT' => '3306',
'DB_USER' => 'xiao.nu.mysql.user',
'DB_PWD' => 'xiao.nu.mysql.pwd',
'DB_NAME' => 'sms',
'DB_CHARSET' => 'utf8'
);
$db = DB::getInstance($config);
$sql = "INSERT INTO `sms` (`message_id`, `hash`, `from`, `sent_to`, `message`, `device_id`, `sent_timestamp`) VALUES ('$m_id', '$hash', '$from', '$sent_to', '$message', '$d_id', '$time')";
$res = $db->query($sql);
if($res!=false){
echo "success";
}else{
echo "fail";
}
?>
将短信内容通过go-cqhttp发送给自己的QQ上面(可以使用wechaty推送到微信)
QQ推送接口:
字段名 | 描述 |
---|---|
user_id | 新手机上面接收的QQ号码 |
group_id | 群号码(这个不要留空) |
message | 要发送的短信内容 |
auto_escape | 消息内容是否作为纯文本发送 ( 即不解析 CQ 码 ) , 只在 message 字段是字符串时有效 |
<?php
// 指定本地go-cqhttp post接口url
$url = "http://localhost:5700/send_private_msg";
$post_data = array(
"user_id" => "123456789",
"group_id" => "",
"message" => "13312345678\n晓怒网站(https://xiao.nu)蛮不错的\nSIM1_13512345678\n2021-11-25 22:59:15\nk30u",
"auto_escape" => false
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$ret = curl_exec($ch);
curl_close($ch);
?>
然后,你就可以在新手机上面收到自己需要收短信验证码、通话记录的信息。