Получена ошибка в twilio flask python автоматизация WhatsApp

#python #flask #twilio

#python #flask #twilio

Вопрос:

Я пытаюсь автоматизировать WhatsApp, используя python и flask, я получил некоторую ошибку при отправке сообщения Twilio в Whatsapp. Мой код такой

 from flask import Flask,request
from twilio.twiml.messaging_response import MessagingResponse
import io
import datetime
#import xmlrpc.client import strftime

appbot=Flask(__name__)
@appbot.route("/sms",methods=["get","post"])

def reply():
    with io.open("response.csv","a",encoding="utf-8")as f1:
        ur = request.form.get("Body")
        un = request.form.get("From")
        print(un)
        print(ur)
        un = un.replace("whatsapp:","")
        dt=datetime.datetime.now().strftime("%y%m%d--%H%M%S")
        data = un "," ur "," dt
        f1.write(data)
        resp = MessagingResponse("You sent" " " ur "from" " " un "on" " " dt)
        return(str(resp))
    
    f1.close()
    
    
if (__name__ == "__main__"):
    appbot.run()
  

Прежде всего, я также должен изменить ссылку в Twilio, но я все еще получаю ошибку в ней.

 [2020-08-23 13:23:19,609] ERROR in app: Exception on /sms [POST]
Traceback (most recent call last):
  File "C:UsersKENILAnaconda3libsite-packagesflaskapp.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "C:UsersKENILAnaconda3libsite-packagesflaskapp.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:UsersKENILAnaconda3libsite-packagesflaskapp.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:UsersKENILAnaconda3libsite-packagesflask_compat.py", line 39, in reraise
    raise value
  File "C:UsersKENILAnaconda3libsite-packagesflaskapp.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:UsersKENILAnaconda3libsite-packagesflaskapp.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "G:/P P SAVANI SCHOOL OF ENGINEERING/4 Forth year/Others/Chatbot/udemychat/app.py", line 27, in reply
    resp = MessagingResponse("You sent" " " ur "from" " " un "on" " " dt)
TypeError: __init__() takes 1 positional argument but 2 were given
127.0.0.1 - - [23/Aug/2020 13:23:19] "POST /sms HTTP/1.1" 500 -
  

Ответ №1:

Вам нужно создать экземпляр ответа и вызвать .message метод для него.

из документов:https://www.twilio.com/docs/sms/tutorials/how-to-receive-and-reply-python

 @app.route("/sms", methods=['GET', 'POST'])
def sms_reply():
    """Respond to incoming calls with a simple text message."""
    # Start our TwiML response
    resp = MessagingResponse()

    # Add a message
    resp.message("The Robots are coming! Head for the hills!")

  

Ошибка, которую вы получаете, связана с тем фактом, что передаются все методы класса (включая __init__ ) self , поэтому передаваемое вами сообщение становится вторым аргументом, и Python выдает TypeError: __init__() takes 1 positional argument but 2 were given ошибку