Gửi tin nhắn SMS từ Rails app với Twilio

Trong thế giới đang phát triển của cà phê, có rất nhiều loại cà phê rang xay từ nhiều vùng trên thế giới. Bạn được giao một nhiệm vụ tạo một ứng dụng cho khách hàng để có thể create, read, update và destroy (CRUD) các loại cà phê khác nhau. Họ cũng yêu cầu bạn là họ sẽ nhận được thông báo thông qua SMS mỗi khi một loại cà phê rang xay được thêm vào trang web của họ để ngăn chặn các đối thủ đưa vào cà phê rang xay giả. Hôm nay, chúng ta sẽ xây dựng một app Rails 5 đơn giản tên là "Coffee Roasts" (Cà phê rang xay) sẽ thông báo cho khách hàng của bạn qua SMS bất cứ khi nào một cà phê rang mới được thêm vào trang web bằng cách sử dụng API SMS của Twilio.

Tạo app Rails

Trước tiên, hãy đảm bảo rằng bạn đã cài đặt Ruby, Bundler và Rails để thiết lập project mới: alt Sử dụng một trình tạo đơn giản để tạo toàn bộ CRUD app với dòng lệnh: alt Sau đó, chúng ta setup database: alt

Tích hợp Rails app với Twilio

Twilio và cộng đồng Ruby đã tạo ra một gem (library) để giúp việc tích hợp Twilio trở nên dễ dàng. Hãy thêm gem sau vào Gemfile để thực hiện chức năng của Twilio: alt Sau đó chạy lệnh bundle để cài đặt Twilio gem trong Rails app của chúng ta: alt

Đăng ký Twilio

Sau đó, hãy thiết lập các cấu hình cần thiết cho ứng dụng của chúng ta:

  1. Truy cập vào trang chủ Twilio Link
  2. Nếu bạn chưa có tài khoản Twilio, ấn vào sign up. Điền đầy đủ thông tin của bạn rồi ấn "Start your free trial": alt
  3. Sau khi đăng ký, Twilio sẽ yêu cầu bạn xác minh số điện thoại cá nhân. Với tài khoản dùng thử miễn phí, đây là số duy nhất bạn có thể gửi văn bản tới, nhưng với ứng dụng thử nghiệm như vậy là đủ. Hãy đảm bảo số điện thoại của bạn có khả năng SMS: alt
  4. Click vào biểu tượng hình ngôi nhà trên cùng bên trái của bảng điều khiển Twilio. Bạn sẽ thấy một mã là ACCOUNT_SID và AUTH_TOKEN. Chúng sẽ cần thiết cho thiết lập Rails app của chúng ta: alt
  5. Chúng ta click vào biểu tượng tin nhắn dưới hình ngôi nhà, chọn Programmable SMS > Learn & Build. Bạn có thể demo việc gửi tin nhắn SMS đến điện thoại của bạn bằng cách nhập số điện thoại vào. Ở đó chúng ta thấy trường "from" chính là số điện thoại sẽ gửi tin nhắn đến điện thoại của bạn. Nó chính là PHONE_NUMBER chúng ta sẽ cấu hình cho ứng dụng Rails: alt

Cấu hình ứng dụng của chúng ta

Chúng ta sẽ thêm ACCOUNT_SID, AUTH_TOKEN và PHONE_NUMBER vào config/secrets.yml. Nó trông giống như thế này: alt Xin lưu ý là bạn cần thêm mã quốc gia vào twilio_phone_number. Ví dụ trên hình trên số điện thoại gửi là (334) 326-2843 thì bạn nhập số tương ứng (+13343262843) vào twilio_phone_number. Chúng ta cần định cấu hình ứng dụng khách của mình bằng cách thêm trình khởi tạo Twilio sẽ được tự động tải bằng Rails. Tạo tập tin config/initializers/twilio.rb và thêm mã này: alt

Bắt đầu viết code demo

Tiếp theo, hãy thêm code tin nhắn văn bản vào service object trong Rails app trong app/services/twilio_text_messenger.rb: alt Lưu ý, user_phone chúng ta truyền vào phương thức cũng cần có mã quốc gia của chúng ta ở đằng trước. Ở nước ta mặc định là (+84). Cuối cùng, chỉnh sửa phương thức create và gọi service object nếu chúng ta tạo ra một đối tượng "coffee roast" trong app/controllers/coffeeroastscontroller.rb: alt

Chạy Rails app

Start server và truy cập vào "localhost:3000/coffee_roasts/new", bạn hãy tạo một "coffee roast" và cầm điện thoại bạn lên, bạn sẽ nhận được tin nhắn thông báo với message mà bạn đã truyền vào trong controller. alt Tèn tèn ten: alt

Trên đây chỉ là ứng dụng Rails cơ bản để gửi SMS thông báo bằng Twilio. Bạn có thể xây dựng các tính năng nâng cao hơn được đề cập trong Link Chúc các bạn thành công! 💯

Nguồn: Link