Chào mừng bạn đến với hướng dẫn về cách gửi thông báo đẩy trong PHP. Không có gì bí mật khi trình duyệt web có khả năng hiển thị thông báo, nhưng làm cách nào chúng ta có thể gửi thông báo đẩy từ máy chủ PHP?
ⓘ Tôi đã bao gồm một tệp zip chứa tất cả mã nguồn khi bắt đầu hướng dẫn này, vì vậy bạn không cần phải sao chép-dán mọi thứ… Hoặc nếu bạn chỉ muốn đi sâu vào
MỤC LỤC
TẢI XUỐNG & LƯU Ý
Đầu tiên, đây là liên kết tải xuống mã ví dụ như đã hứa
GHI CHÚ NHANH
- Một bản sao của thư viện Web Push không được bao gồm trong tệp zip. Tải xuống của riêng bạn –
6D:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
- Đảm bảo rằng tiện ích mở rộng PHP OpenSSL được bật, chạy
7 để tạo khóa công khai/riêng tư của bạnD:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
- Thay đổi khóa công khai trong
8 thành của riêng bạnD:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
- Thay đổi chủ đề, khóa công khai và khóa riêng thành của riêng bạn trong
9D:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
- Truy cập
8 trong trình duyệt của bạnD:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
- Lưu ý rằng cần phải có
1 để thông báo đẩy hoạt động,D:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
2 là ngoại lệ để thử nghiệmD:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
ẢNH CHỤP MÀN HÌNH
Được rồi, bây giờ chúng ta hãy đi vào ví dụ về cách gửi thông báo đẩy trong PHP
BƯỚC 1] CÀI ĐẶT MÁY CHỦ
1A] THƯ VIỆN PUSH WEB PHP
Trước khi chúng tôi bắt đầu với mã, chúng ta hãy xử lý nền tảng. Đầu tiên chúng ta cần tải thư viện PHP Web Push
- Cài đặt trình quản lý gói Composer nếu bạn chưa làm như vậy
- Mở dòng lệnh hoặc thiết bị đầu cuối
- Điều hướng đến thư mục HTTP của bạn. Ví dụ,
3D:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
- Chạy
6D:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
Đó là tất cả. Thư viện Web Push sẽ được tải xuống thư mục
D:\http>php 2-vapid-keys.php
Array
[
[publicKey] => GENERATE-YOUR-OWN
[privateKey] => GENERATE-YOUR-OWN
]
5
1B] PHP OPENSSL
Tiếp theo, bật tiện ích mở rộng OpenSSL trong PHP. Quá trình cài đặt khác nhau tùy thuộc vào hệ điều hành và bản dựng của bạn
- Linux
- Nó đơn giản như
6D:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
- Hoặc
7 cho người dùng CentOSD:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
- Sau đó,
8D:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
- Nó đơn giản như
- Windows – Tôi đang sử dụng XAMPP và OpenSSL đã được bao gồm. Nhưng một tiếng nấc làm tôi bối rối một lúc
- Bắt đầu > Tìm kiếm “môi trường hệ thống” > “Chỉnh sửa biến môi trường hệ thống” > “Biến môi trường”
- Thêm một biến hệ thống mới có tên là
9 và trỏ nó vào tệpD:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
0. Theo mặc định, nó được đặt tại// [A] OBTAIN USER PERMISSION TO SHOW NOTIFICATION window.onload = [] => { // [A1] ASK FOR PERMISSION if [Notification.permission === "default"] { Notification.requestPermission[].then[perm => { if [Notification.permission === "granted"] { regWorker[].catch[err => console.error[err]]; } else { alert["Please allow notifications."]; } }]; } // [A2] GRANTED else if [Notification.permission === "granted"] { regWorker[].catch[err => console.error[err]]; } // [A3] DENIED else { alert["Please allow notifications."]; } }
1// [A] OBTAIN USER PERMISSION TO SHOW NOTIFICATION window.onload = [] => { // [A1] ASK FOR PERMISSION if [Notification.permission === "default"] { Notification.requestPermission[].then[perm => { if [Notification.permission === "granted"] { regWorker[].catch[err => console.error[err]]; } else { alert["Please allow notifications."]; } }]; } // [A2] GRANTED else if [Notification.permission === "granted"] { regWorker[].catch[err => console.error[err]]; } // [A3] DENIED else { alert["Please allow notifications."]; } }
Đó là tất cả những gì dành cho hướng dẫn và đây là một phần nhỏ về một số tính năng bổ sung và liên kết có thể hữu ích cho bạn
KHÔNG PHẢI CÁCH NÓ THƯỜNG HOẠT ĐỘNG…
Tất nhiên, ví dụ đơn giản này không phải là cách máy chủ sản xuất hoạt động
- Trong
8 – Chúng ta nên gửi// [A] OBTAIN USER PERMISSION TO SHOW NOTIFICATION window.onload = [] => { // [A1] ASK FOR PERMISSION if [Notification.permission === "default"] { Notification.requestPermission[].then[perm => { if [Notification.permission === "granted"] { regWorker[].catch[err => console.error[err]]; } else { alert["Please allow notifications."]; } }]; } // [A2] GRANTED else if [Notification.permission === "granted"] { regWorker[].catch[err => console.error[err]]; } // [A3] DENIED else { alert["Please allow notifications."]; } }
7, “nhân viên dịch vụ đã đăng ký” đến máy chủ và lưu nó vào cơ sở dữ liệu trước// [A] OBTAIN USER PERMISSION TO SHOW NOTIFICATION window.onload = [] => { // [A1] ASK FOR PERMISSION if [Notification.permission === "default"] { Notification.requestPermission[].then[perm => { if [Notification.permission === "granted"] { regWorker[].catch[err => console.error[err]]; } else { alert["Please allow notifications."]; } }]; } // [A2] GRANTED else if [Notification.permission === "granted"] { regWorker[].catch[err => console.error[err]]; } // [A3] DENIED else { alert["Please allow notifications."]; } }
- Vào một ngày sau đó, chúng tôi gọi thủ công
9. Tập lệnh này sẽ truy xuất tất cả người đăng ký từ cơ sở dữ liệu và gửi hàng loạt thông báo đẩyD:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
- Cũng trong
21, xóa người dùng khỏi cơ sở dữ liệu khiD:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
22 làD:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
23D:\http>php 2-vapid-keys.php Array [ [publicKey] => GENERATE-YOUR-OWN [privateKey] => GENERATE-YOUR-OWN ]
CÁCH “TIẾT KIỆM NGƯỜI ĐĂNG KÝ VÀO CƠ SỞ DỮ LIỆU”
Tôi đã bỏ nó đi vì MYSQL không phải là cơ sở dữ liệu duy nhất trên thế giới… Cũng bởi vì nó hơi lạc đề cho ví dụ này. Nếu bạn muốn có một “ví dụ hoạt động”, hãy xem dự án mã nguồn mở của tôi – Storage Boxx,
D:\http>php 2-vapid-keys.php
Array
[
[publicKey] => GENERATE-YOUR-OWN
[privateKey] => GENERATE-YOUR-OWN
]
24
TÔI TỪ CHỐI GIẤY PHÉP HIỂN THỊ THÔNG BÁO
Cảm ơn bạn đã đọc, và chúng tôi đã đi đến cuối. Tôi hy vọng rằng nó đã giúp bạn hiểu rõ hơn và nếu bạn muốn chia sẻ bất cứ điều gì với hướng dẫn này, vui lòng bình luận bên dưới. Chúc may mắn và mã hóa hạnh phúc