簡體   English   中英

Django-Twilio單擊按鈕發送短信

[英]Django-Twilio sending SMS on button click

OK可能的noob問題在這里:在學習Django的同時,我認為與Twilio一起探索電話可能很棒。 我的近期目標是創建一個帶有按鈕的頁面,單擊該按鈕可使“ Hello World” SMS發送到我的手機。 整理完之后,我對一些更酷的東西有了一些想法。

到目前為止,我已經完成了幾個Django教程,並制作了一些具有簡單視圖的小應用程序。 但是我所學到的東西都沒有特別闡明如何做這樣的事情。 我還研究(並安裝了)Django-Twilio應用程序和Twilio Python Helper Library,但這些文檔均未顯示如何發送“ Hello World” SMS。

誰能指出可能顯示該操作方法的資源? 或者,如果很簡單,只需發布​​一些示例代碼?

編輯以回應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'

也許是因為我沒有對視圖進行適當的修改。 但是我沒有從本教程中的最少示例中弄清楚自己在做錯什么的好方法。 /編輯

twilio員工在這里。 這里的問題是django_twilio的內置視圖會經過一系列驗證檢查,以確保它們從twilio.com和twilio.com接收內容。 這是django-twilio內置django-twilio

您可以做兩件事:

  1. 確保您的Django設置中的settings.DEBUG = True ,這將關閉驗證。 然后,您可以在終端上像這樣運行的本地計算機上發送cURL請求:

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

    這應該返回一些TWiML,如下所示:

     <Response><Sms>Hello world</Sms></Response> 
  2. 當您在線運行此軟件並且要進行測試時,請設置您的twilio編號,使其指向http://mywebsite.com/sms/並輸入編號。 確保settings.DEBUG = False ,您應該返回一條消息。

如果您還有其他問題,請告訴我。

這是官方文檔: django-twilio官方文檔 更具體地說,請閱讀有關發送SMS的這一部分: 發送短信

這是一個簡單的解決方案:

django startproject projectname

urls.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')),
]

settings.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

在應用程序文件夾中:

urls.py

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

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

views.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')

在您的應用文件夾中創建一個模板目錄

的index.html

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

thankyou.html

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

`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM