2015-04-15 4 views
0

Я пишу программное обеспечение с использованием Twilio API, Flask и Python для отправки и получения SMS-сообщений. Когда я отвечаю на сообщение, я также хочу отправить сообщение на другой номер телефона (таким образом, отправив в общей сложности 2 сообщения, от одного к исходному отправителю, а другой - к совершенно другому человеку).Отправка нескольких SMS-сообщений в Twilio Ответ

Я ответить на SMS с помощью:

@app.route("/", methods=['GET', 'POST']) 
def reply(): 

    # Send other text 
    sendMessage(to_number, text) 

    # Send response  
    resp = twilio.twiml.Response() 
    resp.sms(response) 
    return str(resp) 

Если функция sendMessage является:

from twilio.rest import TwilioRestClient 

def sendMessage(to_number, text): 

    ACCOUNT_SID = "XXXXXXXXX" 
    AUTH_TOKEN = "XXXXXXXX" 
    twilioNumber = "XXXXXXXXX" 

    client = TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN) 

    client.messages.create(
     to=to_number, 
     from_=twilioNumber, 
     body=text, 
    ) 

Но функция sendMessage фактически не отправить текст в отдельном номере (обратите внимание на ответ до сих пор работает). Также обратите внимание, что функция sendMessage работает нормально, когда она вызывается вне функции ответа.

Как мне отправить две разные тексты на два разных номера в ответ на текст только из одного из этих чисел?

+0

Откуда берутся параметр 'to_number'? – philnash

+0

Параметр 'to_number' поступает из базы данных SQL, но я не думаю, что это относится к вопросу. – user2585945

+0

Я не мог видеть, где определялось 'to_number', и если оно было неопределенным, это было бы хорошим показателем того, почему он не отправлял сообщения. Возможно, 'to_number' не возвращается правильно во время действия вашего контроллера, и поэтому вы не можете отправлять сообщения с маршрута, но он работает, когда вы вызываете его вручную. – philnash

ответ

2

Это работает для меня, чтобы послать одно сообщение нескольким адресатам:

from twilio.rest import TwilioRestClient 

def sendMessage(text): 
    ACCOUNT_SID = "ACXXXXXXXX" 
    AUTH_TOKEN = "YYYYYYYYYY" 
    twilioNumber = "+15551235554" 
    client = TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN) 

    NUMBERS = { 
     'Foo':'+15551235555', 
     'Bar':'+15551235556' 
    } 

    for name, number in NUMBERS.items(): 
     message = client.messages.create(
      to=number, 
      from_=twilioNumber, 
      body=text) 
     print message.sid 

Может быть, вы можете найти способ адаптировать это к вашим специфическим потребностям. Обратите внимание, что Twilio ограничивает исходящие SMS-сообщения до 1 сегмента SMS-сообщений в секунду, для каждого номера. More info on Rate-Limits

Смежные вопросы