2013-04-25 42 views
5

Im tạo ứng dụng web sử dụng twilio và dường như tôi gặp sự cố.Twilio: Cách ánh xạ trả lời SMS tới SMS gốc

Hệ thống này bao gồm 3 diễn viên:

  • Một khách hàng chất
  • Một máy chủ vật lý
  • ứng dụng web của chúng tôi

Bất cứ khi nào một khách hàng tạo ra một "công việc" mới thông qua một hình thức , tất cả các chi tiết công việc sẽ được gửi trong một văn bản đến nhiều máy chủ khác nhau. Khi bất kỳ một trong các máy chủ trả lời tin nhắn văn bản đó, chúng tôi cần có khả năng liên kết câu trả lời của anh ấy với "công việc" cụ thể mà anh ta đã trả lời. Vấn đề là tôi không thể tìm ra cách để làm điều này mà không cần mua một số cho mỗi công việc và chỉ liên kết mỗi số với một công việc. Nếu có thể tôi chỉ muốn sử dụng một số, vì việc mua hàng nghìn con số là hoàn toàn lãng phí và không thể.

Trả lời

8

Cookies are the best way to handle a conversation, nhưng vì bạn không thể biết được máy chủ trả lời tin nhắn văn bản nào, nó có thể phức tạp. Nếu bạn gửi máy chủ 2 công việc, và họ chọn để trả lời công việc đầu tiên, bạn không có cách nào để biết điều này.

Tôi nghĩ rằng bạn có hai cách hợp lý để làm điều này:

  • Cho từng công việc một mã số tham chiếu (2 hoặc 3 chữ số để làm cho nó dễ dàng) mà máy chủ có thể trả lời với. Đây là cách đáng tin cậy nhất để làm điều đó.
  • Sử dụng nhiều - nhưng không nhiều - số điện thoại. Vì vậy, trong một khoảng thời gian một ngày, hoặc một vài giờ, bạn chỉ gửi một máy chủ một công việc cho mỗi số. Sau đó, bạn có thể tái chế nhóm số và tái sử dụng chúng sau khi công việc đã hết hạn. Điều này thay vì phụ thuộc vào những gì mong đợi của bạn là khối lượng.
+0

ah vâng, tôi đã nghĩ về điều này. có vẻ như tôi chỉ có thể cung cấp cho mỗi công việc một id công việc. cảm ơn bạn. – user2158382

+1

+1 cho ý tưởng số điện thoại của nhóm. Tôi thích nó! –

5

Vâng theo Twilio, câu trả lời là sử dụng các tập tin cookie:

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

Cũng giống như trong các ứng dụng web, một cookie là một file nhỏ mà ứng dụng của bạn có thể lưu trữ trên các máy chủ Twilio để theo dõi thông tin, chẳng hạn như tên người dùng hoặc tài khoản. Đối với tin nhắn SMS Twilio, cookie được đưa vào “cuộc trò chuyện” giữa hai bên - bạn có thể có một cookie duy nhất cho mỗi cặp số điện thoại Đến/Từ. Ví dụ: bạn có thể lưu trữ một cookie duy nhất cho bất kỳ thư nào được gửi giữa 415-555-2222 và 415-555-1111, sẽ khác với cookie được sử dụng giữa 415-555-3333 và 415-555-1111.

+0

Điều này sẽ hiệu quả nếu bạn không cần theo dõi nhiều cuộc hội thoại giữa 2 số. Giả sử, nếu 415-555-2222 và 415-555-1111 đang trao đổi thông điệp về 2 chủ đề khác nhau. –

+0

Tôi nhầm lẫn về vị trí đặt cookie thực sự. Nếu bạn tìm kiếm trang cho 'cookie', cụm từ đó không xuất hiện trong mã ở bất kỳ đâu. Tôi đang thiếu gì? –

1

Tôi chạy vào trong này thời gian gần đây, và tìm thấy một bài viết mà giải thích khá tốt bằng cách sử dụng ý tưởng hồ bơi mà @xmjw nêu

How users can send text messages to each other over Twilio

Mặc dù ứng dụng là khác nhau, khái niệm đây là loại của tương tự. Đối với bất kỳ ai khác có thể vấp ngã câu hỏi này và cần các giải pháp khác.

Điều tôi đã làm trong giải pháp của mình là tạo mã phản hồi duy nhất. Sau đó, trên thư trả lời, tôi có thể truy vấn mã phản hồi và số từ để liên kết ngược lại văn bản gốc. Trong trường hợp của tôi, đó là một con người ở cả hai bên. Đối với một bên được tự động hóa như một máy chủ, bạn có thể có văn bản được phân tích cú pháp cho những gì mã được, sau đó quay trở lại với mã đó. Sau đó, bạn chỉ cần SELECT * FROM messages WHERE code = ?.