Push notification REST API sử dụng OneSignal trong Flutter

Push Notification trong lập trình ứng dụng là một phần không thể thiếu và trong lập trình Ứng dụng Flutter cũng như vậy.
Trong bài viết này Báo Flutter sẽ chia sẻ về push Notification sử dụng One Signal, dưới sự hướng dẫn của thành viên thuộc đội ngũ Báo Flutter.

Cài đặt
Tạo Push Notification sử dụng OneSignal thì trước hết chúng ta cần tài khoản trên OneSignal, vào OneSignal.com và tạo project mới.

1. Android
– Ở mục Setting>Platfom chọn Google Android

– Ở đây chúng ta cần tạo project Firebase để nhập Firebase Server Key và Firebase Sender ID.
– Sau khi tạo Firebase project mới xong Chọn vào Icon Setting > Project Setting

– Chọn Cloud Messaging và chúng ta sẽ lấy được Firebase Server Key và Firebase Sender ID.

– Add vào trường trên và Next > Chọn Native Android > Next > Save

2. IOS

Cài đặt Push Notification Flutter trong iOS tương tự theo link này.

Thêm thư viện

Quay lại Flutter project của chúng ta, tại file pubspec.yaml thêm thư viện : onesignal_flutter

Ví dụ :

Sau đó chạy Pub get hay run trên terminal: flutter packages get

Start Coding
Tại thư mục android/app/build.grade thêm vào trên cùng dòng đầu tiên (dòng 1):

Khởi tạo OneSignal :

Chú ý
Thêm API key của bạn ở dòng bên dưới :

Ảnh bên dưới là hướng dẫn lấy app_id và API key

– Chúng ta đã tiến hành khởi tạo OneSignal rồi. Nhưng như thế vẫn chưa đủ, Chúng ta cần thêm dòng sau:

Nếu ứng dụng của bạn được thiết lập để yêu cầu sự đồng ý của User trước khi sử dụng push notifications. Thì phương thức này cần được gọi khi người dùng đưa ra sự đồng ý của họ.

Ví dụ: Bạn có 1 Dialog có các action [“Có”, “Không” ] xuất hiện với content : “Bạn có muốn nhận thông báo từ dịch vụ của chúng tôi không?” khi User chọn “Có” thì cũng chính là lúc phương thức này cần được gọi.

Còn nếu không muốn yêu cầu sự đồng ý của user thì hãy gọi nó trong hàm khởi tạo.

Phương thức này sẽ khiến cho OneSignal SDK khởi chạy.

– Nếu bạn muốn push notification Từ device của bạn, bạn có thể theo dòng code sau:

3. REST API

Như vậy là chúng ta đã khởi tạo xong OneSignal trên Flutter.
Vậy câu hỏi đặt ra là “Vậy làm thế nào để tôi gửi thông báo từ backend của tôi ?”
Câu trả lời là: “……Ờ thì.. Cũng dễ thôi :D”
OneSignal hỗ trợ cho việc tạo notification qua việc REST API
Ở trường hợp này , tôi sử dụng Postman để thử nghiệm
– Trước hết đây là phương thức Post với base url: https://onesignal.com/api/v1/notifications

Chúng ta tiến hành add Api key đã lấy ở trên của chúng ta như trên hình.
Sau đó ta qua mục Body > chọn raw và add đoạn json sau vào:

Nhớ thay app_id của bạn vào. Sau đó SEND….. và ting ting… Thông báo của bạn đã được gửi.

Bạn có thể đọc thêm về REST API OneSignal tại : https://documentation.onesignal.com/reference/create-notification

Sourcecode của bài hướng dẫn này trên Github tại đây

Như vậy, Bài viết đã hướng dẫn cho bạn cách để sử dụng OneSignal cho việc push notification trong lập trình ứng dụng Flutter. Hy vọng bài viết giúp ích cho bạn.

Chúc các bạn có được nhiều kiến thức từ Báo Flutter

Tác giả bài viết

Nguyễn Mạnh Hùng

Flutter Software Engineer tại Báo Flutter

One Reply to “Push notification REST API sử dụng OneSignal trong Flutter”

  1. Cho em hỏi là em db của em là mysql thì em muốn làm có notification khi có dữ liệu mới trên db thì bên app nhận đc thì làm sao ạ

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *