Google Cloud Messaging và Push Notification trong Android - Phần 1
Khóa học lập trình Android cơ bản


Danh sách bài học
Google Cloud Messaging và Push Notification trong Android - Phần 1
Nội dung bài viết Học nhanh
Dẫn nhập
Ở các bài học trước, chúng ta đã cùng nhau tìm hiểu về cách TÍCH HỢP MẠNG XÃ HỘI VÀO ỨNG DỤNG ANDROID (Facebook / Google) dưới dạng login credential nhằm phục vụ cho nhiều mục đích khác nhau như xác thực, lấy thông tin người dùng từ các mạng xã hội lớn (Facebook, Google).
Ở phần này chúng ta sẽ tiếp tục tìm hiểu về Google cloud messaging & Push notification. Chức năng này khá hữu ích trên điện thoại, ví dụ như có email gửi đến, hoặc có ai đó chat trên Facebook thì các thông báo đó sẽ hiện ra như thế này:
Nội dung
Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về các phần:
- CẤU TRÚC CƠ BẢN MỘT CHƯƠNG TRÌNH ANDROID.
- Có một đường truyền internet để test push.
Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề:
- Firebase Cloud Messaging (FCM).
- Các loại Message của FCM.
- Tạo một app FCM để làm nền móng gửi push.
Firebase Cloud Messaging
Từ từ, đợi một chút, tiêu đề bài viết chẳng phải là Google Cloud Messaging hay sao?
Chính xác, Firebase Cloud Messaging là phiên bản mới của Google Cloud Messaging. Hiện Google đang trong quá trình hợp nhất các dịch vụ hỗ trợ ứng dụng mobile như admob, GCM sang một nền tảng thống nhất là Firebase.
Mục tiêu của việc sáp nhập là Google muốn tạo một nền tảng “backendless”, tức là các lập trình viên có thể sử dụng ngay cơ sở hạ tầng to khủng sẵn có của mình mà không cần tự xây dựng gì thêm. Và nếu như các bạn để ý một chút thì sẽ biết rằng Firebase có một dịch vụ database thời gian thực rất ngon (để làm chat / định vị thời gian thực).
Do đó mình quyết định viết hướng dẫn trên nền tảng mới này luôn.
Các loại Message
Push message đơn thuần chỉ là một mẩu tin, ở FCM thì chúng tồn tại dưới dạng một đoạn code JSON chứ không có gì cao siêu.
Chúng ta có 2 loại Message chính có thể gửi:
- Nofitication Message: Message này được xử lý bởi Firebase SDK tích hợp trong ứng dụng. Chúng bao gồm tin nhắn, icon, tiêu đề. Các tin này có thể được gửi từ Firebase Console UI. Message kiểu này có dạng:
- Data Message: Message loại này sẽ cần được xử lý bởi lập trình viên. Loại Message này không thể được gửi từ Firebase Console như trên. Với message loại này, các bạn cần tự xây dựng backend riêng của mình, message có dạng:
- Loại cuối cùng là loại message kết hợp của cả 2 loại trên, có cả 2 object là data và notification.
Đối tượng nhận tin
- Global: Tin nhắn sẽ được gửi cho tất cả các đối tượng đã đăng ký nhận tin từ server của bạn (Ví dụ Zing MP3 có chức năng thỉnh thoảng gửi một tin push đến tất cả những ai dùng app của họ, giới thiệu về một bài nhạc mới nổi gần đây, mục đích để quảng cáo).
- Topic: Tin nhắn sẽ được gửi cho các đối tượng đã đăng ký một topic nào đó. Ví dụ như trên Facebook, khi bạn comment dưới ảnh một ai đó, thì nếu có người khác comment trên cùng ảnh đó, bạn sẽ nhận được thông báo. Đó là vì bạn đã đăng ký vào topic là cái ảnh đó.
Phương thức truyền nhận
Các bạn hãy xem sơ đồ sau:
Bước 1: Thiết bị tích hợp GCM / FCM sẽ gửi yêu cầu cung cấp Registration ID đến GCM server. “Ê mày cho tao cái ID để lấy tin”.
Bước 2: GCM trả lời dựa trên thông tin app của lập trình viên: “OK, ID của mày đây, cầm lấy, lưu lại để còn dùng” và trả về registration ID chuyên biệt cho từng máy.
Bước 3: Thiết bị Android sẽ gửi ID lên server. “Ê mày lưu hộ tao cái ID này, lần sau gửi vào đúng ID này nha”.
Bước 4: Mỗi khi server của chúng ta cần gửi yêu cầu push, nó sẽ gửi push message lên GCM, kèm cái ID mà thiết bị Android đã ném lên ở bước 3.
Bước 5: GCM sẽ xem tin có hợp lệ hay không, và xem registration ID có tồn tại không, rồi gửi message. Và thiết bị Android sẽ nhận được tin push.
Tích hợp Firebase Cloud Messaging
Bước 1: Các bạn cần có một tài khoản Google, và truy cập vào trang:
- Click vào nút Create new Project và nhập thông tin như hình, rồi nhấn Create Project.
Bước 2: Trình duyệt sẽ vào trang chính của project Firebase vừa tạo. Nhấn vào Add Firebase to your Android app
Bước 3: Đặt tên các Thông tin như sau:
- Package name: Tên package của ứng dụng. Ở ví dụ này là com.howkteam.pushexample
Bước 4: Nhấn Next, ở bước này các bạn lưu file google-services.json vào thư mục app/ của project nhé:
Đặt trong này này:
Vậy là xong!
Kết luận
Qua bài này chúng ta đã nắm được sơ bộ về Firebase, cách thức nhận / gửi tin của Firebase Cloud Messaging và tạo một app phía Firebase để sẵn sàng tích hợp nhận / gửi push.
Bài sau chúng ta sẽ tìm hiểu về CÁCH TÍCH HỢP FIREBASE CLOUD MESSAGING VÀO CODE JAVA TRONG ANDROID.
Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.
Tải xuống
Tài liệu
Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Google Cloud Messaging và Push Notification trong Android - Phần 1 dưới dạng file PDF trong link bên dưới.
Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com
Đừng quên like và share để ủng hộ Kteam và tác giả nhé!

Thảo luận
Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.
Tác giả/Dịch giả
Khóa học
Khóa học lập trình Android cơ bản
Serial tutorial hướng dẫn lập trình Android cơ bản