Skip to main content
 首页 » 编程设计

python之Django-Twilio 在按钮点击时发送短信

2024年08月28日31mayingbao

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

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

任何人都可以指出可能显示如何执行此操作的资源吗?或者,如果它非常简单,只需发布​​一些示例代码?

编辑以回应 Kevin Burke:

感谢你回复我,凯文。 修改我的 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' 

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

请您参考如下方法:

twilio 员工在这里。 这里的问题是 django_twilio 的内置 View 会通过一系列验证检查来确保它们从 twilio.com 接收内容并且只接收 twilio.com。这是内置于 django-twilio 中的安全措施。

您可以做两件事:

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

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

    这应该返回一些 TWiML像这样:

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

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