我只是想在我的PHP网页应用程序中发送短信。 有人能告诉我怎么做吗? 需要做哪些事情?
我不知道这是否适用于您,但我经常为了节省费用向用户询问其运营商,并尝试将其与此列表
进行匹配。实际上,许多/大多数运营商都有一个与电话号码相连的电子邮件地址,使您可以轻松地向该号码发送短信。例如,如果您使用ATT并且您的电话号码是786-262-8344,则发送到7682628344@txt.att.net的电子邮件将免费向您发送带有电子邮件主题/正文的文本消息。这种技术几乎可以免费覆盖您的所有美国用户。显然,根据您的应用程序需求可能无法实现/足够/所需,但这是一种需要注意的选择。
您发送短信消息的主要选择是使用现有的短信提供商。根据我的经验(我在SMS消息Web应用程序方面经验丰富),您经常会发现与不同的提供商协商是获得应用程序最优惠交易的最佳途径。
不同的提供商通常提供不同的服务和不同的功能。 我最喜欢的提供商,也是那些过去曾与我愉快地协商降价的提供商,是TM4B(http://www.tm4b.com)。 这些人具有极好的费率,遍布全球,而且客户服务也非常出色。
以下是从我的一个实时Web应用程序中提取的代码(有些部分已被混淆),用于通过其API发送简单消息:
require_once("tm4b.lib.php");
$smsEngine = new tm4b();
// Prepare the array for sending
$smsRequest["username"] = "YOURUNAME";
$smsRequest["password"] = "YOURPWORD";
$smsRequest["to"] = "+441234554443";
$smsRequest["from"] = "ME!";
$smsRequest["msg"] = "Hello, test message!";
// Do the actual sending
$smsResult = $smsEngine->ClientAPI($smsRequest);
// Check the result
if( $smsResult['status'] == "ok" ) {
print "Message sent!";
} else {
print "Message not sent.";
}
我之前使用过很多其他提供商,它们的界面非常相似,并且在定价方面都非常有竞争力。你只需寻找适合你需求的提供商。
就费用而言,对于大多数西方国家来说,价格从几便士/美分起(对于大多数第三世界国家,价格略高,因此要小心)。如果您想要从这些提供商中获得优惠价格,大多数情况下您需要批量付款,但是他们通常会与您协商“小于平常”的批次。大多数提供商确实提供后付选项,但仅当您成功完成了几笔交易后...其他人则从一开始就提供,但价格过高。
只发送,但便宜且易用
最简单的方法肯定是使用@Paolo Bergantino 上面提到的电子邮件黑客技巧。让你的用户输入电话号码并从列表中选择运营商很容易。一旦您获得了用户的信息,无论在哪个开发平台上都很容易发送电子邮件。
然而,我发现这种方法有两个非常重要的限制:
便宜又实用的发送和接收
如果您想在预算内设置您的网站以便发送和接收SMS消息,则可以使用诸如 TextMarks 之类的服务。TextMarks允许您选择一个关键字,用于您的服务,使用户可以通过TextMarks的共享短代码41411将消息路由到您。这里的问题是,他们在每个消息中保留20个字符来投放广告,以支付他们的服务费用。
专业质量
如果您需要低延迟、高可靠性和无广告,请几乎肯定必须通过SMS聚合器,除非您足够大且能够与每个运营商进行谈判。
我发现需要注意的是很多短信聚合平台实际上是营销公司,而不是应用主机——他们并不真正理解将短信作为用户与服务提供商进行交互的渠道。我发现那些使用“你的广告活动”而不是“你的应用程序”的短信聚合平台是最糟糕的罪犯。远离这些平台,找一个能够理解您作为应用程序开发人员需求的短信聚合平台。
您好,我叫Jarod,是Twilio.com的员工,所以我有点偏见。但是话说回来,使用Twilio REST API从您的PHP Web应用程序发送短信非常简单。以下是一个简单的示例:
<?php
// Get the PHP helper library from twilio.com/docs/php/install
require_once('/path/to/twilio-php/Services/Twilio.php'); // Loads the library
// Your Account Sid and Auth Token from twilio.com/user/account
$sid = "{{ account_sid }}";
$token = "{{ auth_token }}";
$client = new Services_Twilio($sid, $token);
$client->account->messages->sendMessage("+14158141829", "+14159352345", "Hi Shyju, Sorry it took me so long to get back to you. <3 The Internet.");
$URL = "http://v2.smsgateway.me/API/Send/Single.php";
$postdata = http_build_query(
array(
'Username' => "foo@bar.co.uk",
'Password' => "password",
'Number' => "+447791064782",
'Message' => "Hello World!",
)
);
$opts = array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata));
$context = stream_context_create($opts);
$result = file_get_contents($URL, false, $context);
<?php
$SMSLIB["phone"] = '44111222333'; // your phone number
$SMSLIB["key"] = 'abcdefghijklmnopqrs'; // your personal API code
include("smslib.php"); // we will provide you with smslib.php file
sendSMS("test message", $SMSLIB["phone"]); // function which sends the message
?>
如果你需要一个可靠的方法来发送多条短信,你应该寻找一个作为web到SMS网关的短信服务提供商。在这种情况下,将会有一个基于http的接口,允许你通过调用URL并传递收件人和消息作为参数来发送短信。