改变"来自"收件人的SMS文本消息字段

时间:2014-11-11 03:01:35

标签: sms twilio

我希望我的短信收件人能够看到我的商家名称,而不是电话号码。这怎么可能?我目前正在使用Twilio,但我对涉及其他服务的建议持开放态度。

4 个答案:

答案 0 :(得分:1)

Twilio开发者传道者在这里。

我知道这是你问这个问题好几个月,但我想更新完整性的可能答案。当您在2014年11月提出此问题时,无法使用字母数字发件人ID从Twilio发送短信。

然而,since May 2015 it has been possible to do so。您需要做的就是将电话号码替换为API调用的From参数,以发送包含您希望发件人ID所在文本的邮件。这在将短信发送到145 countries时目前有效。

如果我在Ruby中这样做,它看起来像:

account_sid = YOUR_TWILIO_ACCOUNT_SID
auth_token = YOUR_TWILIO_AUTH_TOKEN
recipient_phone_number = RECIPIENT_PHONE_NUMBER

client = Twilio::REST::Client.new(account_sid, auth_token)
client.messages.create(
  from: "ALPHANUMERICID",
  to: recipient_phone_number,
  body: "Hello World!"
)

修改

请注意,要在Twilio帐户中使用字母数字发件人ID,您需要启用帐户。为此,请contact twilio support使用您的帐户SID请求访问权限。

答案 1 :(得分:1)

对于那些看过@philnash的答案但仍有问题的人,请阅读本文。我使用的是twilio-ruby宝石,我在英国。

我看到很多地方都说:

  

您需要做的就是替换from参数。

这不是真的!

第1步

联系Twilio并让他们在您的帐户中启用它。

第2步

第二步是确保您使用的号码具有正确的国家/地区代码,0779XXXXXXX779XXXXXXX足以在指定from号码时发送短信之前已经购买过。购买的号码有一个原产国,因此Twilio知道在其前面加上正确的国家代码。但是,字母数字发送者没有编号,因此没有原籍国。

使用0779XXXXXXX作为To参数。返回错误:

The 'To' number 0779XXXXXXX is not a valid phone number.

虽然技术上是正确的,但它并不正确,它只是错过了国家/地区代码。

使用779XXXXXXX作为To参数。返回此错误:The 'To' phone number: +1779XXXXXXX, is not currently reachable using the 'From' phone number: Foo via SMS. +1是美国电话前缀。美国没有选择以字母数字形式发送。这就是我偶然发现修复的方法。

<强> TLDR;

<强> 1。联系Twilio,让他们在您的帐户中启用

<强> 2。请确保使用国家/地区代码作为前缀。

答案 2 :(得分:0)

我找到了三个服务(不是Twilio)似乎解决了这个问题:

  • Nexmo
  • Plivo
  • smsmessagesender

上述服务支持出站短信的动态字母数字发件人ID,因此您应该能够发送11个字母数字字符的组合作为邮件的发件人ID。请注意强调出站短信。似乎无法接收字母数字发件人ID上的传入短信。

如果有人对这些服务有更多经验,请分享。

编辑:请注意,这些服务的可用性还取决于使用服务的司法辖区的法律。

答案 3 :(得分:0)

正如FullStack所说,您可以考虑使用另一个SMS API。

我工作的Nexmo提供高质量的消息服务,包括动态发件人ID的支持。您可以使用任何字母数字字符串来描述运营商支持的应用程序或品牌(对字母数字发送者ID没有限制)。

某些国家/地区(如美国)不允许使用字母数字发送者ID。其他国家允许,但有特殊限制我们考虑到&amp;努力确保最大限度地交付。

您可以找到字母数字发送者ID兼容国家/地区的完整列表,以及运营商限制here

<?php
$url = 'https://rest.nexmo.com/sms/json?' . http_build_query([
    'api_key' => API_KEY,
    'api_secret' => API_SECRET,
    'to' => YOUR_NUMBER,
    'from' => "AppName",
    'text' => 'Hello'
]);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);