Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Twilio/Django未收到响应短信_Python_Django_Twilio - Fatal编程技术网

Python Twilio/Django未收到响应短信

Python Twilio/Django未收到响应短信,python,django,twilio,Python,Django,Twilio,我想给一个twilio号码发短信,然后开始向用户提问。如果这是他们第一次发短信,应该创建一个新的“呼叫者”。如果他们以前打过球,我想查一下“最后一个问题”,我们问了他们并问了他们适当的问题。我下面的代码不会产生SMS响应和一个Twilio错误“HTTP检索失败” 在models.py中,我有 class Caller(models.Model): body = models.CharField(max_length=200) from_number = models.CharFi

我想给一个twilio号码发短信,然后开始向用户提问。如果这是他们第一次发短信,应该创建一个新的“呼叫者”。如果他们以前打过球,我想查一下“最后一个问题”,我们问了他们并问了他们适当的问题。我下面的代码不会产生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
In 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员工在这里-问题可能是因为您没有围绕此视图提供
csrf\u豁免
decorator。Django将触发一个安全错误,因为它正在接收来自twilio.com的
HTTPPOST
请求。Django不会接受任何没有csrf令牌的
HTTPPOST
请求,除非您将其豁免

您是否考虑过使用Django的包?使用twilio进行开发时,它将使您的生活更加轻松。这就是您对django twilio的看法:

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\u视图
decorator将提供csrf豁免,并确保您的所有请求都是真实的,并且来自twilio.com


请查看以开始。

此处是Twilio员工-问题可能是因为您没有在该视图周围提供
csrf\u豁免
装饰程序。Django将触发一个安全错误,因为它正在接收来自twilio.com的
HTTPPOST
请求。Django不会接受任何没有csrf令牌的
HTTPPOST
请求,除非您将其豁免

您是否考虑过使用Django的包?使用twilio进行开发时,它将使您的生活更加轻松。这就是您对django twilio的看法:

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\u视图
decorator将提供csrf豁免,并确保您的所有请求都是真实的,并且来自twilio.com


查看以开始。

从brower查看上述视图时,您是否看到任何错误?你得到了什么样的响应?当我使用浏览器时,我得到“body”列中的null值违反了notnull约束”这很有意义,因为我不发送任何东西,而是从我发送的文本中,我本质上必须发送一个“body”。是的,这是真的,你能单独测试这两行吗:
resp=twilio.twiml.response()
resp.sms('some message')
?我不阅读文档,但它们做了什么?当从brower查看上面的视图时,您是否看到任何错误?您得到了什么响应?当我使用浏览器时,我得到“body”列中的null值违反了not null约束“这很有意义,因为我不发送任何内容,而是发送文本,我天生就必须有一个“body”正在发送。是的,这是真的,你能单独测试这两行吗:
resp=twilio.twiml.Reponse()
resp.sms('some message')
?我不看文档,但它们做什么?