2026年1月7日水曜日

pywebpush で鍵を作成する方法

pywebpush で鍵を作成する方法

概要

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 件のコメント:

コメントを投稿