概要
pywebpush は Python からブラウザプッシュを実現する仕組みです
プッシュ通知するには秘密鍵と公開鍵の作成が必要です
今回はそれらの鍵の作成方法を紹介します
環境
- macOS 15.7.2
- Python 3.12.11
- pywebpush 2.2.0
- py-vapid 1.9.4
インストール
- pipenv install py-vapid
鍵ファイル作成
-
pipenv run vapid --gen
これで private_key.pem と public_key.pem が作成できます
private_key.pem は Python 側のアプリで設定します
ファイルのパスをそのまま指定すれば OK です
webpush(
subscription_info=json.loads(sub),
data=json.dumps(
{"title": "新着メッセージ", "body": "相手からメッセージが届きました"}
),
vapid_private_key=VAPID_PRIVATE_KEY_PATH,
vapid_claims={"sub": "user01@mail"},
)
公開鍵の文字列化
-
pipenv run vapid --applicationServerKey
ここで文字列化した情報は JavaScript 側に設定します
const sub = await reg.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey:
"xxx",
});
最後に
ブラウザプッシュは https が必須なので注意しましょう
localhost はテスト用で動作しますが IP や http していないサイトでは動作しません
0 件のコメント:
コメントを投稿