HomeLập trìnhPythonCách gửi thông...

Cách gửi thông báo đến Ứng dụng web của bạn bằng Python


bởi Lucas Hild

BmpbVPfs2eXWxoCpdbnWMdfYCkf33IAtMbSu
Ảnh của Daria Nepriakhina trên Bapt

Các ứng dụng gốc đã trở nên cực kỳ phổ biến gần đây, chủ yếu là do các tính năng như hoạt động ngoại tuyến, chuyển đổi, khả năng phân phối dễ dàng và tất nhiên là thông báo đẩy. Nhưng thật không may, bạn cần có kiến ​​thức tốt về các ngôn ngữ như Java hoặc Swift để tạo một ứng dụng gốc có giá trị.

Ứng dụng web lũy tiến

Ứng dụng web lũy tiến (PWA) là các ứng dụng JavaScript chạy trong trình duyệt. Họ nỗ lực đưa một số tính năng của ứng dụng gốc lên web. PWA rất dễ phát triển nếu bạn có kiến ​​thức cơ bản về HTML, CSS và đặc biệt là JavaScript. Ngoài ra, nếu dịch vụ của bạn đã có sẵn cho các thiết bị máy tính để bàn trên một trang web, thì việc thêm các chức năng của Ứng dụng web sẽ dễ dàng hơn thay vì phát triển ứng dụng dành cho thiết bị di động gốc.

thông báo

Thông báo giúp người dùng luôn được thông báo về các tin nhắn mới, cho họ biết về một bài đăng blog mới, v.v.

Nhiều ứng dụng gốc gửi thông báo đẩy cho người dùng. Nhưng điều này cũng có thể thực hiện được bằng cách sử dụng PWA và API thông báo.

H0tzewZI3D7d-DcwdysrJx3CpPTE2IcvEUeE
Ảnh của Phố Jamie trên Bapt

một tín hiệu

Trong hướng dẫn này, chúng tôi sẽ sử dụng OneSingal để gửi thông báo tới ứng dụng web của chúng tôi. OneSignal là một công cụ mạnh mẽ cung cấp giao diện đơn giản để đẩy thông báo. Họ cũng cung cấp API nghỉ ngơi mà chúng tôi sẽ sử dụng để gửi thông báo.

Thiết lập OneSignal

Để gửi thông báo đẩy, trước tiên bạn cần thiết lập OneSignal. Do đó, bạn cần có một tài khoản trên OneSignal. Truy cập trang web của họ và nhấn “Đăng nhập” ở góc trên bên phải.

Đọc thêm  Cách sử dụng PostgreSQL trong Python

Tiếp theo, bạn sẽ phải tạo một ứng dụng. Đặt tên cho nó và chọn “Nền tảng thiết lập”. Tại đây bạn chọn “All Browsers”. Sau đó, bạn chọn “mã tùy chỉnh” để tích hợp. Sau đó, bạn phải cung cấp một số thông tin về trang web của bạn.

Trong khu vực cài đặt của ứng dụng, có một tab có tên là “Khóa & ID”. Sao chép cả hai phím cho sau này.

CZolsxSB91fV86I3nzpJL2qHSLEOfSyR0eWz

Quan trọng: Không chia sẻ cho bạn Khóa API REST. Giữ nó riêng tư!

Đó là để thiết lập OneSignal. Điều đó thật dễ dàng!

Thiết lập trang web của chúng tôi

Trong phần tiếp theo, chúng tôi sẽ thêm chức năng thông báo vào trang web của chúng tôi. Trang web sẽ phải chờ thông báo do OneSignal gửi và hiển thị chúng cho người dùng.

Để cho trình duyệt biết rằng bạn đang tạo Ứng dụng web lũy tiến, chúng tôi sẽ thêm một tệp có tên manifest.json đến thư mục gốc của dự án của chúng tôi.

{  "name": "My Application",  "short_name": "Application",  "start_url": ".",  "display": "standalone",  "background_color" : "#fff" ,  "description": "We send notifications to you",  "gcm_sender_id": "482941778795",  "gcm_sender_id_comment": "Do not change the GCM Sender ID"}

Sáu cặp khóa-giá trị đầu tiên mô tả giao diện của ứng dụng. Các gcm_send_id là quan trọng để gửi thông báo. Nếu bạn muốn biết thêm về manifest.jsonbạn có thể xem trong Tài liệu Mozilla.

Trình duyệt của bạn không tự động tìm tệp kê khai. Bạn phải đặt đường dẫn đến nó trong mọi tài liệu HTML trong <hequảng cáo> thẻ.

<head>    ...    <link rel="manifest" href="https://www.freecodecamp.org/news/how-to-send-notifications-to-your-web-app-using-python-ba490b893292/manifest.json">    ...</head>

Ngoài ra, chúng tôi cần một số mã JavaScript để kết nối trang web của chúng tôi với OneSignal.

Bạn có thể đặt mã cho mã đó trong thẻ tập lệnh trong &lt;hequảng cáo > phần. Đừng quên xem lạiđặt tôi-app-id bằng id ứng dụng OneSignal của riêng bạn.

<head>    <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script>        <script>        var OneSignal = window.OneSignal || [];        OneSignal.push(function () {            OneSignal.init({                appId: "my-app-id",                autoRegister: false,                notifyButton: {                    enable: true,                },            });        });    <script></head>
rXjHpdqOUR9ahuanYkm9FlHip7ftX12pFV-n
Nhắc người dùng đăng ký nhận thông báo của bạn

Khi bạn muốn nhắc người dùng đăng ký nhận thông báo của mình, bạn thực thi đoạn mã này.

OneSignal.push(function () {    OneSignal.showHttpPrompt();});

Hơn nữa, bạn cần một nhân viên dịch vụ, nhân viên này sẽ lắng nghe các thông báo ở chế độ nền. Do đó, bạn cần hai tệp trong thư mục gốc của dự án.

Đọc thêm  Python Sleep – time.sleep() trong Python

OneSignalSDKUpdaterWorker.js

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');

OneSignalSDKWorker.js

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');

Truy cập API bằng Python

OneSignal có Rest API dễ sử dụng. Các điểm cuối được ghi lại trong Tài liệu dành cho nhà phát triển OneSignal.

JonbuaZJXt9N2C-HIZzS-JR6gp1trvGEZ741
Ảnh của Max Nelson trên Bapt

Để truy cập nó, chúng tôi cần gửi các yêu cầu HTTP. Vì vậy, chúng tôi sẽ sử dụng một thư viện được gọi là yêu cầu. Để cài đặt nó, bạn có thể sử dụng pip, trình quản lý gói của Python.

pip install requests

Đây là điểm cuối API mà chúng tôi cần gửi thông báo: https://onesignal.com/api/v1/notifications.

Giao thức HTTP có một số phương thức. Trong trường hợp này, chúng tôi muốn thực hiện một yêu cầu POST. Để làm như vậy, chúng ta cần nhập các yêu cầu và thực thi một chức năng.

import requests
requests.post("https://onesignal.com/api/v1/notifications")

OneSignal muốn xác minh rằng chỉ bạn mới có thể gửi thông báo đến trang web của mình. Vì vậy, bạn phải thêm tiêu đề HTTP bằng Khóa API còn lại từ OneSignal.

requests.post(    "https://onesignal.com/api/v1/notifications",    headers={"Authorization": "Basic my-rest-api-key"})

Nhớ thay my-rest-api-key bằng Khóa API còn lại của bạn.

Hơn nữa, bạn cần một số thông tin cơ bản về thông báo của mình.

data = {    "app_id": "my-app-id",    "included_segments": ["All"],    "contents": {"en": "Hello"}}
requests.post(    "https://onesignal.com/api/v1/notifications",    headers={"Authorization": "Basic my-rest-api-key"},    json=data)

Thay thế my-app-id với id ứng dụng của riêng bạn. Tiếp theo, bạn chọn người sẽ nhận thông báo của bạn. Các giá trị ví dụ là "All", "Active Users", "Inactive Users”. Nhưng bạn cũng có thể tạo các phân khúc của riêng mình. Và cuối cùng, bạn thêm một số nội dung của tin nhắn bằng tiếng Anh. Nếu bạn cần một ngôn ngữ khác, bạn cũng có thể thêm ngôn ngữ đó vào đây.

Đó là nó! Nếu bạn đã đăng ký nhận thông báo, bạn sẽ nhận được thông báo đẩy.

Đọc thêm  Cách xây dựng chương trình Python để tải xuống video YouTube
Z6q3cFDErQJTIstdDh8lc93gBpRgtvLxJmTs

Gửi thông báo bằng API Wrapper

Vì mã của tôi trở nên lộn xộn với nhiều thông báo khác nhau nên tôi đã tạo một trình bao bọc API cho OneSignal.

Trình bao bọc API

Nhưng trình bao bọc API là gì? Trình bao bọc API giúp bạn truy cập API dễ dàng hơn. Bạn có thể nói rằng đó là API cho API. Bạn gọi trực tiếp trình bao bọc API thay vì API.

Bạn có thể cài đặt trình bao bọc có tên OneSignal-Thông báo từ píp.

pip install onesignal-notifications

Bây giờ bạn có thể nhập nó và thiết lập ứng dụng khách của mình.

from onesignal import OneSignal, SegmentNotificationclient = OneSignal("MY_APP_ID", "MY_REST_API_KEY")

Để gửi Thông báo, bạn phải khởi tạo lớp Thông báo phân đoạn và sử dụng phương pháp gửi.

notification_to_all_users = SegmentNotification(    {        "en": "Hello from OneSignal-Notifications"    },    included_segments=SegmentNotification.ALL)client.send(notification_to_all_users)

Có thể điều này có vẻ không cần thiết đối với bạn, bởi vì nó thậm chí còn cần nhiều dòng mã hơn. Nhưng nếu bạn có nhiều thông báo, nó sẽ làm cho quá trình dễ dàng hơn nhiều và mã của bạn đẹp hơn.

Ví dụ: nếu bạn muốn gửi thông báo dựa trên một số điều kiện, thì trình bao bọc API có một lớp tùy chỉnh cho việc đó.

from onesignal import OneSignal, FilterNotification, Filterclient = OneSignal("MY_APP_ID", "MY_REST_API_KEY")
filter_notification = FilterNotification(    {        "en": "Hello from OneSignal-Notifications"    },    filters=[        Filter.Tag("my_key", "<", "5"),        "AND",        Filter.AppVersion(">", "5"),        "OR",        Filter.LastSession(">", "1"),    ])

Có nhiều thông số tùy chỉnh mà bạn có thể cung cấp để điều chỉnh thông báo của mình. Ví dụ: bạn có thể thêm các nút vào thông báo. Tất cả danh sách của tất cả các tham số có thể được tìm thấy ở đây.

from onesignal import OneSignal, FilterNotification, Filterclient = OneSignal("MY_APP_ID", "MY_REST_API_KEY")
filter_notification = SegmentNotification(    {        "en": "Hello from OneSignal-Notifications"    },    web_buttons=[        {          "id": "like-button",          "text": "Like",          "icon": "http://i.imgur.com/N8SN8ZS.png",          "url": "https://github.com/Lanseuo/onesignal-notifications"}    ],    included_segments=SegmentNotification.ALL)

Nếu bạn muốn tìm hiểu thêm về OneSignal-Thông báobạn có thể xem trong Kho lưu trữ GitHub hoặc trong tài liệu.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status