Twilio SMS (P1)
Như các bạn đã biết, hiện nay có rất nhiều công ty sử dụng sms để gửi thông báo về số điện thoại của bạn để authenticate hoặc một vấn đề gì đó để xác nhận. Nhiều người đặt ra câu hỏi, phải chăng có một nhân viên nào đó, chỉ ngồi và gửi tin nhắn khi được ông chủ giao cho vài số điện thoại. Nhưng không, có rất nhiều trang web hỗ trợ việc tự động gửi tin nhắn, mình chỉ cần nhập số điện thoại là cả thế giới sẽ để nó lo, và cái mình đang đề cập đến là 1 trang rất được ưa chuộng đó chính là Twilio. Hôm nay mình sẽ giới thiệu cho các bạn cách gửi tin nhắn thông qua Twilio nhé.
1. Đăng kí tài khoản dùng thử
Twilio cho phép chúng ta đăng kí 1 tài khoản để trải nghiệm việc gửi tin nhắn. Đầu tiên bạn đăng nhập vào trang chủ https://www.twilio.com. Các bạn cứ đăng kí như bình thường, trang này khi đăng kí cũng không cần phải xác nhận email, rất là nhanh nhé. Sau khi nhập email, tên, password bạn sẽ chọn ngôn ngữ mà bạn sẽ dùng để gửi tin nhắn, mình làm Ruby nên chọn Ruby nhé.
Tiếp theo sẽ hiện màn hình như bên dưới:
Màn hình này sẽ dùng để verify số điên thoại của bạn, số điện thoại này chính là số điện thoại mà bạn sẽ dùng để nhận sms.
2. Tạo project trên twilio
Sau khi đã signup thành công, màn hình sẽ hiện lên như sau:
Ở đây có khá nhiều mục để bạn lựa chọn, mỗi mục sẽ đáp ứng đúng nhu cầu của bạn như là Two-Factor Authencication, SMS Chatbot, mình thấy cái này khá hay, ngoài việc hỗ trợ gửi tin nhắn, nó còn hỗ trợ bảo mật 2 lớp, blabla, ngoài việc nó mất phí còn lại thi quá hoàn hảo. Vì mình chưa trải nghiệm hết tất cả nên mình sẽ lựa chọn cái mình quen thuộc nhất là Flex project nhé. Tiếp theo bạn sẽ setting 1 số thứ cho project của mình, cái nào cần thiết thì nhập, không cần thiết thì bấm Skip Remainning Steps.
3. Thiết lập để gửi tin nhắn bằng twilio
Đối với Ruby thì có hỗ trợ gem twilio-ruby nên các bạn dùng lệnh gem install twilio-ruby
để cài đặt gem vào máy của mình nhé.
Sau đó bạn tạo 1 file rb với đoạn code sau:
require 'twilio-ruby'
account_sid = 'AC****************************'
auth_token = '0a*****************************'
client = Twilio::REST::Client.new(account_sid, auth_token)
from = '+12489492993' # Your Twilio number
to = '+84973******' # Your mobile phone number
client.messages.create(
from: from,
to: to,
body: "Test SMS"
)
Sau khi đã có đoạn code trên, các bạn truy cập vào trang https://www.twilio.com/console để lấy thông tin của account_sid
và auth_token
.
Ở phía góc phải sẽ lưu sid và auth token bạn copy paste cái này vào đoạn code của mình nhé. Bây giờ đến số điện thoại gửi đi, bạn click vào link https://www.twilio.com/console/phone-numbers/incoming, vì chúng ta tạo tài khoản trải nghiệm sẽ được cung cấp 1 số điện thoại của USA.
Số điện thoại này có đầy đủ mọi tính năng từ call, sms, fax...khá là tiện lợi cho việc test phải không, ban copy sđt và dán vào phần from nhé. Tiếp đến số điện thoại được nhận, bạn truy cập vào link https://www.twilio.com/console/phone-numbers/verified
Đây chính là số điện thoại mà bạn đã verify lúc đăng kí, hiện tại bạn chỉ gửi được cho duy nhất 1 số này, để thêm số điện thoại, bạn click vào dấu +. Tuy nhiên vì là bản trial nên nó sẽ có giới hạn, không thêm được quá nhiều, và mỗi lần bạn sẽ phải nhập số verify code gửi về điện thoại. Vậy đã xong, bạn chạy cái file đó rồi xem log thế nào nhé. Nếu gửi thành công, nó sẽ không hiển thị lỗi gì hết, nếu debug vào để chạy từng dòng, khí thành công sẽ hiển thị:
<Twilio.Api.V2010.MessageInstance account_sid: AC114cc7067e7d7a2c8a9f767f82e58028 api_version: 2010-04-01 body:
Sent from your Twilio trial account - hey date_created: 2018-11-07 02:39:20 +0000 date_updated: 2018-11-07 02:39:20 +0000
date_sent: direction: outbound-api error_code: 0 error_message: from: +14065103617 messaging_service_sid:
num_media: 0 num_segments: 1 price: 0.0 price_unit: USD sid: SM049f310f3da6485bbceedbe06db84785
status: queued subresource_uris: {"media"=>"/2010-04-01/Accounts/AC114cc7067e7d7a2c8a9f767f82e58028/Messages/SM049f310f3da6485bbceedbe06db84785/Media.json"}
to: +84973067736 uri: /2010-04-01/Accounts/AC114cc7067e7d7a2c8a9f767f82e58028/Messages/SM049f310f3da6485bbceedbe06db84785.json>
Ngoài ra sẽ có một số lỗi như sau:
Twilio::REST::RestError: [HTTP 400] 21408 : Unable to create record
Permission to send an SMS has not been enabled for the region indicated by the 'To' number: +8497......
https://www.twilio.com/docs/errors/21408
Lỗi này dó bạn chưa đăng kí nhận tin nhắn ở Việt nam, để đăng kí bạn click https://www.twilio.com/console/sms/settings/geo-permissions, tiếp tục tìm đến Vietnam và tích chọn. Vậy là mình đã giới thiệu cho các bạn cách gửi tin nhắn thông qua Twilio, vì mình chưa nâng cấp tài khoản nên chưa nghịch được tất cả các tính năng của nó. Theo hiện tại mình thấy đối có bất cập nhỏ đối với bản trial là khi muốn gửi tin nhắn đến số điện thoại bất kì, thì bạn phải verify số điện thoại đó, ban đầu mình cứ nghĩ cứ nhập đại thì nó đều gửi được hết.
Các bạn có thắc mắc gì để lại comment bên dưới nhé
All rights reserved
Bình luận
hi bạn, cảm ơn bạn vì bài viết. Cho mình hỏi chút, đọc hết bài viết, chưa có demo, nên mình không hiểu là nếu call và sms, thì địa chỉ nhận là sđt của mình rồi. Oke, không nói. Nhưng địa chỉ SENDER ở đâu ra vậy? default là 1 số mặc định của twilio hả?
Hi, bạn. Khi bạn đăng kí Twillio thì họ sẽ cung cấp cho bạn 1 số điện thoại mặc định, bạn có thể vào link https://www.twilio.com/console/phone-numbers/incoming đấy chính là sđt SENDER.
@tungtv
@latinguyen88 vấn đề này mình chưa gặp bao giờ nhưng bạn gửi tài khoản của bạn vào email mình để mình xem cho nhé. nguyen.dinh.huy@framgia.com
sorry mình phản hồi hơi trễ, sau 1 hồi lâu mò mẫm, mình đã kích hoạt thành công và nhắn tin thứ, nó nhận bình thường, tuy nhiên mình xác minh email nó ko trả về, với lại số mình mua chỉ nhắn tin được chứ gọi không được, ahuhu, nếu vẫn bó tay thì mình pass qua cho huy
Hi bạn, cảm ơn bạn vì bài viết. Mình có 1 thắc mắc là với bảng trial thì mình cần "Verified Caller IDs" còn bảng produce thì mình có cần thực hiện bước ngày ko. nếu có thì làm sao để mình sent multi nhiều số điện thoại. vs bạn có cách nào để test với số dt của mỹ. Thanks bạn
Hi Ad, Bạn đã thử work với Twilio Call. Mình có issue là chỉ call vs đầu số Mobile mà ko call được với đầu số viettel. Không biết là có cần config chổ nào không. Thanks
Hi bạn, hi mọi người, khi dùng thử số điện thoại nước ngoài Mobilephone và Vinaphone không nhận được OTP, vậy làm sao để giải quyết vấn đề, có phải mua 1 số Việt Nam.
@nintran1995 Không biết bạn đang làm dự án sẽ triển khai ở VN hay ở nước ngoài. Dự án mình apply Twilio là sử dụng ở Nhật và việc không nhận được sms ko xảy ra Còn trường hợp của bạn mình cũng gặp phải và cũng ko có cách giải quyết, hiện cũng chỉ nhận được sđt của Viettel thôi.
Hi các bác! Có bác nào còn tk twilio ko ạ? Mình đang cần mua