我想发送短信感谢"Textbelt"API(更多信息https://github.com/typpo/textbelt和http://textbelt.com/)。我尝试了几种方法(php、浏览器扩展、jquery等),但每次都会出现错误,它显示"null"变量或错误消息(带有一些"echo"one_answers"var_dump"用于测试)。只有一个解决方案似乎有效,但没有发送短信。事实上,当我开始这个脚本时,我得到了一个红板"{"成功":真}",但没有发送短信。你有什么想法吗?我做错了吗?
这是这个简短脚本的代码:
<!DOCTYPE HTML>
<html>
<head>
<meta charset='utf-8'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(function(){
var g= $.post("http://textbelt.com/intl",
{
number: "0033xxxxxxxxx",
message: "testing https://github.com/typpo/textbelt"
}
).done(function (){
$('#output1').html(g.responseText);
});
}
);
</script>
<style>
#output2 {
border: 2px solid green;
}
#output1 {
border: 2px solid red;
}
</style>
</head>
<body>
<div id="output1"></div>
<div id="output2"></div>
</body>
我不确定其他原因,但从你的脚本中,我注意到你的电话号码以"0033…"开头。我的理解是,对于美国以外的手机,号码格式必须是标准的(+336…)。
TextBelt背后的脚本通过使用您提交的电话号码,将消息按暴力顺序发送到该国所有已知运营商的电子邮件网关,然后为每个特定运营商的网关格式化(例如:337xxxxxxxx@orange.fr)并尝试将其发送到该运营商,然后转到下一个运营商,直到它发送到所有运营商。最终,它将在其中一个方面取得成功,并将正确传递信息。
像这样的普通HTML表单是有效的(我测试过):
<form action=http://textbelt.com/intl method="post" name=TextMessage>
<p>
Number: <input type=text name=number>
</p>
<p>
Message: <input type=text name=message>
</p>
<p>
<input type=Submit name=Submit value=Submit>
</form>
我希望这能有所帮助。
repo包含模块设置或独立服务器的引导程序。因为上面的代码似乎是一个客户端请求,应该指向您自己托管的texebelt克隆服务器,而不是textbelt.com上提供的服务器。您应该使用ngrok或jprq公开您的texeBelt克隆服务器以通过WAN访问。因此,表单动作应该如下
...action=http://url-from_ngrok_service_port.com/file_sms_send_hanlder.php?id=intl" method="post"...