Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
microCMS と Firebase Clound Messaging で実現する Web ...
Search
stin
April 19, 2023
Programming
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
microCMS と Firebase Clound Messaging で実現する Web Push 通知
stin
April 19, 2023
More Decks by stin
See All by stin
ジャムスタックチョットデキル_シブヤ_LT資料
stin
1
1.1k
Other Decks in Programming
See All in Programming
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
160
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
670
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
160
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.5k
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.4k
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
150
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
140
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
730
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
670
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
210
今さら聞けない .NET CLI
htkym
0
180
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Marketing to machines
jonoalderson
1
5.7k
The Invisible Side of Design
smashingmag
301
52k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
240
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
260
The Cost Of JavaScript in 2023
addyosmani
55
10k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Un-Boring Meetings
codingconduct
0
380
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
420
Tell your own story through comics
letsgokoyo
1
1k
Transcript
microCMS と Firebase Clound Messaging で 実現する Web Push 通
知
About Me すてぃん chot Inc. フロントエンドエンジニア https://twitter.com/stin_factory
内容について 先に Zenn に投稿したハンズオン記事の内容を少しアップデートしてお 話します。 https://zenn.dev/chot/articles/web-push-with-microcms-and-fcm 未読の方でも内容が把握できるよう努めます。
概要 - microCMS - Firebase Cloud Messaging(以降 FCM) を用いて、架空のメディアサイトにWeb Push
通知で新着記事をお知ら せする機能を実装します。 記事にはカテゴリーが設定されており、プッシュ通知はカテゴリー別に購 読できるように実装します。
試してみたきっかけ ついに iOS Safari にも Web Push 通知が実装されて、プッシュ通知を 搭載したWebサイト開発が現実的になりました。 chot
Inc. が得意とする microCMS を使った Jamstack 開発でも、iOS サポートを含むプッシュ通知の実装が必要になっていくでしょう。 その準備として、microCMS と FCM による実装を学びます。
話さないこと - microCMS, Firebase のプロジェクト作成手順 - microCMS, Firebase の SDK
インストール手順 - Firebase CLI インストール手順 - microCMS を使った Web サイトの作り方など かなり掻い摘んでお話しますので、ブログ記事や公開しているソース コード等も併せて御覧ください
microCMS とは - 国産のヘッドレスCMS - コンテンツを JSON 形式で取得できる - コンテンツ編集時の
Webhook 機能 ⭐ コンテンツを追加したタイミングの Webhook をプッシュ通知に利用しま す (無料プランの範囲で試すことができます!)
Firebase Cloud Messaging とは - Firebase が提供するプッシュ通知サービス - Web に限らずネイティブアプリにも対応
- 完全無料で使用可能 Cloud Functions for Firebase, Firestore も併用して実装します。 (Functions は従量課金プランでないと使用できませんが無料枠が大き いので気軽に試せます!)
サービス構成
microCMS のスキーマ設定
通知設定画面を用意 microCMS から取得したカテゴリー一覧 から通知設定画面をビルドします このチェックボックスは…
通知設定画面を用意 Firestore のドキュメントにこんなデータ を保存します token は FCM の Client SDK
で取得で きるトークンで、Functions で使います (通知送信先デバイスの識別子です)
通知設定を FCM に反映 通知設定を保存した Firestore ドキュメントの更新イベント(onCreate, onUpdate)で Functions をトリガーします Functions
では FCM の Admin SDK によってトークンとトピック(記事カ テゴリー)の紐付けを行います
None
Webhook を受け取ってプッシュ通知を送信する 同じく Functions で https リクエストを受け付ける関数を用意します。 microCMS の記事作成時に送信される Webhook
を受け取るための関 数です。 Webhook のリクエストボディに含まれる記事データからカテゴリーを確 認して通知送信を行います。
webhook に microCMS からのリクエストボディが含まれています。 webpush.fcmOptions.link は通知バーをクリックしたらブラウザが開く URL。
microCMS で Webhook の設定をする microCMS 管理画面の {コンテンツ} > API 設定
> Webhook で、コンテンツ編集時の Webhook を設定できます。 Functions で作成した https 関数の URL を指定し、コンテンツ公開時 に送信されるような設定にしておきます。
None
通知を送信してみる! microCMS で記事を作成すると、 プッシュ通知が配信されます! 通知をタップすれば記事詳細ページ がブラウザで開かれます。 右の画像は Android Chrome の通知
バーです。
まとめ microCMS と Firebase Cloud Messaging を組み合わせてプッシュ通 知を送信するサイトの実装方法を紹介しました。 - サイト上で購読設定を
Firestore に保存して、 Functions でトピック 購読設定 - microCMS から Webhook を Functions に送信 - Functions で記事カテゴリーをトピックとして通知送信
まとめ 実際にデプロイされたデモサイト https://microcms-notification-media.vercel.app/ ソースコード https://github.com/y-hiraoka/microcms-notification-media 本内容は掻い摘んでいるので、より詳細な手順は是非ブログもご覧ください https://zenn.dev/chot/articles/web-push-with-microcms-and-fcm
それではよい PWA ライフを!