2

好的可能的菜鸟问题:在学习 Django 时,我认为使用 Twilio 探索电话可能很酷。我的直接目标是创建一个带有按钮的页面,单击该按钮会导致将“Hello World”短信发送到我的手机。在整理出来之后,我对更酷的东西有了一些想法。

到目前为止,我已经完成了几个 Django 教程,并制作了一些带有简单视图的小应用程序。但是我所学到的任何东西都没有特别说明如何做这样的事情。我还调查(并安装)了 Django-Twilio 应用程序和 Twilio Python Helper Library,但这些文档都没有显示如何发送“hello world”短信。

谁能指出一个可能显示如何做到这一点的资源?或者,如果它非常简单,只需发布​​一些示例代码?

编辑回应凯文伯克:

谢谢你回复我,凯文。修改我的 urls.py 以包括:

urlpatterns = patterns('',
# ...
url(r'^sms/$', 'django_twilio.views.sms', {
    'message': 'Hello world',
    'to': '+12223334444',
    'sender': '+18882223333',
    'status_callback': '/sms/completed/',
    }, name = 'send_message'),
# ...
)

并将我的浏览器指向

http://127.0.0.1:8000/sms/

出现以下错误:

Exception Type: TwimlException at /sms/
Exception Value: Invalid method parameter, must be 'GET' or 'POST'

也许这是因为我没有对视图进行适当的修改。但是我没有很好的方法从教程中的最小示例中找出我做错了什么。/编辑

4

3 回答 3

3

twilio 员工在这里。这里的问题是,内置视图django_twilio通过一系列验证检查来确保它们接收来自 twilio.com 的内容,并且只接收来自 twilio.com 的内容。这是内置于django-twilio.

你可以做两件事:

  1. 确保您settings.DEBUG = True在 Django 设置中,这将关闭验证。然后,您可以在本地计算机上发送cURL请求,同时它在您的终端中像这样运行:

    $ curl http://localhost:8000/sms/
    

    这应该像这样返回一些TWiML

    <Response><Sms>Hello world</Sms></Response>
    
  2. 当您在线运行此程序并想要对其进行测试时,请将您的twilio 号码设置为指向http://mywebsite.com/sms/该号码并发送短信。确保这一点settings.DEBUG = False,您应该收到一条消息。

如果您还有问题,请告诉我。

于 2014-02-17T19:47:21.353 回答
0

这是官方文档:django-twilio 官方文档。更具体地说,阅读关于发送短信的这一部分:发送短信

于 2013-09-20T03:50:48.480 回答
0

这是一个简单的解决方案:

django startproject projectname

网址.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('message_api.urls')),
]

设置.py

TWILIO_ACCOUNT_SID = TWILIO_ACCOUNT_SID
TWILIO_AUTH_TOKEN = TWILIO_AUTH_TOKEN
DJANGO_TWILIO_FORGERY_PROTECTION = False
DJANGO_TWILIO_BLACKLIST_CHECK = True

启动新应用程序

python manage.py startapp appname

在应用程序文件夹内:`

网址.py

from django.conf.urls import url
import django_twilio
from . import views

urlpatterns = [
     url(r'^api/$', views.home),
     url(r'^send/', views.sms),
]

视图.py

from django.shortcuts import render
from twilio.rest import Client
from twilio_api import settings

def home(request):
    return render(request, 'index.html', {})

def sms(request):
    client = Client(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN)

    message = client.messages.create(to='TO NUMBER', from_='YOUR TWILIO NUMBER', body='This message is sent through twilio api using django framework by akshat.')

    print(message.sid)

    return render(request, 'thankyou.html')

在您的应用程序文件夹中创建一个模板目录

索引.html

<body>
<a href="/send/"><button class="btn btn-outline-primary">Send Message</button></a>
</body>

谢谢你.html

<body>
<h1>Success</h1>
</body>

`

于 2017-05-13T12:39:08.107 回答