Gửi tin nhắn SMS từ Rails app với Twilio
Bài đăng này đã không được cập nhật trong 5 năm
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: 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: Sau đó, chúng ta setup database:
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: Sau đó chạy lệnh bundle để cài đặt Twilio gem trong Rails app của chúng ta:
Đă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:
- Truy cập vào trang chủ Twilio Link
- 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":
- 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:
- 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:
- 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:
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: 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:
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: 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:
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. Tèn tèn ten:
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
All rights reserved