2013-04-25 5 views
5

Im создание веб-приложения, которое использует twilio, и у меня, похоже, проблема.Twilio: Как сопоставить SMS-ответ на оригинальное SMS-сообщение

Система состоит из 3-х актеров:

  • Физический клиент
  • Физический сервер
  • Наш веб-приложение

Всякий раз, когда клиент создает новую «работу» с помощью формы , все детали задания будут отправляться в тексте на разные серверы. Когда любой из серверов отвечает на это текстовое сообщение, мы должны уметь связывать его ответ с конкретной «работой», на которую он ответил. Проблема в том, что я не могу понять, как это сделать, не покупая номер для каждой работы и просто связывая каждое число с заданием. Если возможно, я хотел бы использовать только один номер, так как покупка тысяч номеров полностью расточительна и невозможна.

ответ

8

Cookies are the best way to handle a conversation, но поскольку вы не можете указать, какое текстовое сообщение отвечает сервер, это может быть сложно. Если вы отправляете задания на сервер 2, и они предпочитают отвечать на первое задание, вы не можете этого знать.

Я думаю, что у вас есть два разумных способов сделать это:

  • Дайте каждому задание код ссылки (2 или 3 цифры, чтобы сделать его легко), что сервер может ответить. Это самый надежный способ сделать это.
  • Используйте несколько, но не многие - номера телефонов. Чтобы в течение одного дня или нескольких часов вы отправляли только одно задание сервера на номер. Затем вы можете перерабатывать пул чисел и повторно использовать их после истечения времени ожидания работы. Это скорее зависит от ваших ожидаемых объемов.
+0

ах да, я думал об этом. похоже, я могу просто дать каждой задаче идентификатор работы. Спасибо. – user2158382

+1

+1 для пула идей телефонных номеров. Мне это нравится! –

5

Ну согласно Twilio, ответ использовать печенье:

http://www.twilio.com/docs/quickstart/php/sms/tracking-conversations

Так же, как в веб-приложениях, печенье это небольшой файл, приложение может хранить на серверах Twilio, чтобы следить информации, такой как имя пользователя или учетная запись. Для Twilio SMS куки-файлы привязаны к «разговору» между двумя сторонами - у вас может быть уникальный cookie для каждой пары «To/From number number». Например, вы можете сохранить уникальный cookie для любых сообщений, отправленных между 415-555-2222 и 415-555-1111, которые будут отличаться от файлов cookie, используемых между 415-555-3333 и 415-555-1111.

+0

Это будет работать, если вам не нужно отслеживать несколько разговоров между двумя номерами. Скажем, если 415-555-2222 и 415-555-1111 обмениваются сообщениями о двух разных предметах. –

+0

Я смущен тем, где на самом деле установлен файл cookie. Если вы ищете страницу для 'cookie', этот термин нигде не отображается в коде. Что мне не хватает? –

1

Я столкнулся с этим в последнее время, и нашел статью, которая объясняет очень хорошо, используя идею пула, @xmjw упомянутого

How users can send text messages to each other over Twilio

Хотя применение отличается, концепцией здесь является своим родом одна и та же. Для всех, кто может наткнуться на этот вопрос и нуждаться в других решениях.

Что я в итоге сделал в своем решении, было создание уникальных кодов ответа. Затем в ответ я мог запросить код ответа и номер из номера, чтобы связать его с исходным текстом. Однако в моем случае это был человек с обеих сторон. Для того, чтобы одна сторона была автоматизирована, как сервер, вы могли бы проанализировать текст для кода, а затем вернуться с этим кодом. Тогда вы бы просто SELECT * FROM messages WHERE code = ?.