gpt4 book ai didi

python - Twilio/Django 未收到回复短信

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:18 25 4
gpt4 key购买 nike

我想给一个 twilio 号码发短信,并向用户提出一系列问题。如果这是他们第一次发短信,则应创建一个新的“调用者”。如果他们以前玩过,我想查找“last_question”,我们问他们并问他们适当的问题。我的下面的代码没有产生 SMS 响应,并且出现 Twilio 错误“HTTP 检索失败。”

在 models.py 中我有

class Caller(models.Model):
body = models.CharField(max_length=200)
from_number = models.CharField(max_length=20)
last_question = models.CharField(max_length=2, default="0")

def __unicode__(self):
return self.body

在views.py中

def hello_there(request):
body = request.REQUEST.get('Body', None)
from_number = request.REQUEST.get('From', None)
try:
caller = Caller.objects.get(from_number = from_number)
except Caller.DoesNotExist:
caller = None
if caller:
if caller.last_question == "0":
if body == "Password":
message = "Welcome to the game. What is 3 + 4?"
caller.last_question = "1"
else:
message = "What is the password?"
else:
message = "you broke me"
else:
new_caller = Caller(body=body, from_number=from_number, last_question="0")
new_caller.save()
message = "New user created"
resp = twilio.twiml.Reponse()
resp.sms(message)
return HttpResponse(str(resp))

最佳答案

这里是 Twilio 员工 - 问题可能是因为您没有在此 View 周围提供 csrf_exempt 装饰器。 Django 将触发安全错误,因为它正在接收来自 twilio.com 的 HTTP POST 请求。 Django 将不会接受任何没有 csrf token 的 HTTP POST 请求,除非您将其豁免。

您是否考虑过使用 django-twilio Django 包?使用 twilio 进行开发将使您的生活变得更加轻松。这就是 django-twilio 的 View :

from django_twilio.decorators import twilio_view

@twilio_view
def hello_there(request):
body = request.REQUEST.get('Body', None)
from_number = request.REQUEST.get('From', None)
try:
caller = Caller.objects.get(from_number=from_number)
except Caller.DoesNotExist:
caller = None
if caller:
if caller.last_question == "0":
if body == "Password":
message = "Welcome to the game. What is 3 + 4?"
caller.last_question = "1"
else:
message = "What is the password?"
else:
message = "you broke me"
else:
new_caller = Caller(body=body, from_number=from_number, last_question="0")
new_caller.save()
message = "New user created"
resp = twilio.twiml.Reponse()
resp.sms(message)
return resp

twilio_view 装饰器将提供 csrf 豁免,并确保您的所有请求都是真实的且来自 twilio.com。

查看 installation instructions开始吧。

关于python - Twilio/Django 未收到回复短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18051604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com