20

我正在构建一个应用程序,其中有这个小调查模块,它向我提供的电话号码发送一条简单的短信,并且必须收集响应(如果用户触发它)并将其显示给我。我正在使用 django 构建我的项目。我已经尝试过 django-sms 谷歌代码项目,但我无法将消息从我的手机发回我的服务器。我浏览了许多关于短信网关/运营商的教程。但我迷路了。谁能帮我推荐一个关于从我的应用程序(django)发送短信到任何手机的教程?关于向手机发送短信,是否会花费我(就像我如何从一部手机向另一部手机发送短信一样)?

4

7 回答 7

21

嗨,我的名字是 Jarod,我在 Twilio.com 工作,所以我有点偏见。但话虽如此,使用Twilio Rest Api从 Python Web 应用程序发送 SMS 非常容易。这是一个简单的例子:

# Download the Python helper library from twilio.com/docs/python/install 
from twilio.rest import TwilioRestClient

# Your Account Sid and Auth Token from twilio.com/user/account
account_sid = "{{ account_sid }}"
auth_token  = "{{ auth_token }}"
client = TwilioRestClient(account_sid, auth_token)

message = client.messages.create(
    body="Jenny please?! I love you <3",
    to="+15558675309",
    from_="+14158141829",
    media_url="http://www.example.com/hearts.png")
print message.sid
于 2014-01-14T00:19:23.993 回答
11

从技术角度来看,使用任何网络应用程序完成 SMS 发送的最简单方法是通过电子邮件。大多数手机提供商通常会向他们的用户提供电子邮件帐户,向该帐户发送邮件更有可能通过 SMS 将邮件重定向到他们的手机。但是,并非所有运营商都这样做,有些运营商会为此类服务收取额外费用。在这种情况下,您可以查看以下Django 文档页面来处理此问题

但是,如前所述,这并不是一个真正完整的解决方案,因此最简单的方法是使用 SMS 网关。大多数情况下,它们提供简单的基于 REST 的 API,用于向手机发送文本消息。API 会因运营商而异。如果您正在寻找免费和开源的解决方案(假设您想在服务器上安装实际网关),我建议您查看Kannel 。

无论如何,我会开始尝试让它与电子邮件场景一起工作,然后如果您确实需要它,然后继续使用运营商。希望这会有所帮助。

于 2009-01-10T05:08:37.890 回答
4

我在另一篇文章中回答了一个类似的问题,有点晚了。此处提供更多信息。希望能帮助到你:

我为此苦苦挣扎了一段时间,真的很喜欢 Twilio 选项。但后来我更深入地挖掘,发现有一个名为的 Google Voice APIpygooglevoice有效。干净,简单...无需运营商查找...例如,设置virtualenv并安装pip

pip install pygooglevoice

然后使用这样的东西:

from googlevoice import Voice
from googlevoice.util import input

def send(number, message):
    user = 'user@gmail.com'
    password = 'password'

    voice = Voice()
    voice.login(user, password)

    #number = input('Number to send message to: ') # use these for command method
    #message = input('Message text: ')

    voice.send_sms(number, message)

请注意,我对此进行了有限的测试,所以我不确定所有的利弊。很有可能存在我尚未发现的限制。但在我玩它的那段时间里,我很高兴。

于 2014-02-16T21:59:39.450 回答
3

看看django-sms

于 2009-01-10T05:08:19.030 回答
0

查看twilio.com。它们提供易于使用的 API(Python 中的几行代码)以及在用户响应时在应用程序中接收 SMS 消息和触发回调的可能性。

于 2010-08-17T07:30:55.550 回答
0

http://bitbucket.org/vgavro/django-smsgate显然是您正在寻找的,但您必须为您的 sms-gateway 编写自定义后端。

于 2010-09-16T23:22:42.403 回答
0

我还找到了TextMagic。虽然对于我居住的国家来说有点贵,但它看起来很有希望。对于您感兴趣的国家来说,它可能具有具有竞争力的价格,因此请在提前收费之前检查价格。

用法似乎很简单:

通过 pip 快速安装:

pip install textmagic

发送短信似乎很简单,如下所示:

from textmagic.rest import TextmagicRestClient

username = "your_textmagic_username"
token = "your_apiv2_key"
client = TextmagicRestClient(username, token)

message = client.messages.create(phones="9990001001", text="Hello TextMagic")
于 2017-12-29T09:05:04.277 回答