2013-04-25 10 views
5

Sto creando un'app web che usa twilio e io sembra avere un problema.Twilio: Come mappare una risposta SMS ad un SMS originale

Il sistema consiste di 3 attori:

  • Un Cliente fisica
  • un server fisico
  • La nostra applicazione web

Ogni volta che un cliente crea un nuovo "lavoro" tramite un modulo , tutti i dettagli del lavoro verranno inviati in un testo a molti server diversi. Quando uno qualsiasi dei server risponde a tale messaggio di testo, dobbiamo essere in grado di associare la sua risposta al particolare "lavoro" a cui ha risposto. Il problema è che non riesco a capire come farlo senza dover acquistare un numero per ogni lavoro e semplicemente associando ciascun numero a un lavoro. Se possibile vorrei solo utilizzare un numero, dal momento che l'acquisto di migliaia di numeri è completamente inutile e impossibile.

risposta

8

Cookies are the best way to handle a conversation, ma poiché non è possibile stabilire quale messaggio di testo risponda al server, può essere complicato. Se si inviano i lavori del server 2 e si sceglie di rispondere al primo lavoro, non si ha modo di saperlo.

penso che ci sono due modi ragionevoli per farlo:

  • dare ad ogni lavoro un codice di riferimento (2 o 3 cifre per rendere più facile) che il server può rispondere con. Questo è il modo più affidabile per farlo.
  • Utilizzare più - ma non molti - numeri di telefono. In questo modo, durante un periodo di un giorno o di qualche ora, si invia un server solo un lavoro per numero. Quindi puoi riciclare il numero di numeri e riutilizzarli dopo che il lavoro è scaduto. Questo dipende piuttosto da cosa sono i tuoi volumi attesi.
+0

ah sì, stavo pensando a questo. sembra che potrei semplicemente dare a ogni lavoro un ID di lavoro. grazie. – user2158382

+1

+1 per l'idea del numero di telefono. Mi piace! –

5

Ebbene secondo Twilio, la risposta è quella di utilizzare i cookie:

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

Proprio come in applicazioni web, un cookie è un piccolo file che l'applicazione può memorizzare sui server di Twilio per tenere traccia di informazioni, come un nome utente o un account. Per Twilio SMS, i cookie hanno come ambito la "conversazione" tra due parti: è possibile avere un cookie univoco per ciascuna coppia di numeri di telefono To/From. Ad esempio, è possibile memorizzare un cookie univoco per tutti i messaggi inviati tra 415-555-2222 e 415-555-1111, che saranno diversi dal cookie utilizzato tra 415-555-3333 e 415-555-1111.

+0

Questo funzionerà se non è necessario tenere traccia di più conversazioni tra 2 numeri. Supponi, se 415-555-2222 e 415-555-1111 scambiano messaggi su 2 soggetti diversi. –

+0

Sono confuso su dove il cookie sia effettivamente impostato. Se cerchi la pagina per 'cookie', il termine non compare nel codice da nessuna parte. Cosa mi manca? –

1

mi sono imbattuto in questo di recente, e trovato un articolo che spiega abbastanza bene con l'idea che la piscina @xmjw menzionato

How users can send text messages to each other over Twilio

Anche se l'applicazione è diversa, il concetto qui è una sorta di stesso. Per chiunque altro possa inciampare su questa domanda e aver bisogno di altre soluzioni.

Quello che ho finito con la mia soluzione è stato generare codici di risposta univoci. Quindi, sulla risposta, potrei richiedere il codice di risposta e il numero da per ricollegarlo al testo originale. Nel mio caso però, era un umano da entrambe le parti. Poiché una parte è automatizzata come un server, si può fare in modo che il testo venga analizzato per quale sia il codice, quindi restituito con quel codice. Quindi avresti solo SELECT * FROM messages WHERE code = ?.