Firebase Cloud MessagingのFCM v1 APIがWeb Notifications APIをサポート

Firebase Cloud MessagingとWeb Notifications APIの統合

Web開発者にとって、通知機能は非常に重要です。特に、ユーザーとのエンゲージメントを高めるためには、効果的な通知を送信することが不可欠です。そこで、Firebase Cloud Messaging(FCM)がもたらす新しい機能についてご紹介します。この機能は、2018年5月22日に発表されたもので、FCMのv1 REST APIがWeb Notifications APIに完全に統合されました。この統合によって、開発者はサーバーからウェブ通知にアイコンや画像、アクションなどを設定できるようになりました。

革新的な統合の利点

この新機能の利点は多岐にわたります。

  • カスタマイズ性の向上: 通知の見た目やアクションを自由にデザインでき、ユーザーがより興味を持つような通知を送信できます。
  • 即時対応: Web Notifications APIが進化する際、新しいオプションがFCMに即座に利用可能になるため、更新を待つ必要がありません。
  • エンゲージメントの向上: ユーザーがアクションを選択することで、アプリへの参加を促進します。

実際の通知サンプル

具体的な通知の例を見てみましょう。例えば、次のようなペイロードを送信することが可能です。

{
  "message": {
    "webpush": {
      "notification": {
        "title": "Fish Photos 🐟",
        "body": "Thanks for signing up for Fish Photos! You now will receive fun daily photos of fish!",
        "icon": "firebase-logo.png",
        "image": "guppies.jpg",
        "data": {
          "notificationType": "fishPhoto",
          "photoId": "123456"
        },
        "click_action": "https://example.com/fish_photos",
        "actions": [
          {
            "title": "Like",
            "action": "like",
            "icon": "icons/heart.png"
          },
          {
            "title": "Unsubscribe",
            "action": "unsubscribe",
            "icon": "icons/cross.png"
          }
        ]
      }
    },
    "token": ""
  }
}

この通知では、ユーザーが「いいね」や「登録解除」といったアクションを選択できるようになっています。これにより、ユーザーは単純に通知を受け取るのではなく、アクティブな参加者になることができます。

アクションの処理方法

通知にアクションボタンを設けた場合、アプリでそのアクションを処理する方法が必要です。次のように、既定のファイルであるfirebase-messaging-sw.js(またはカスタムのサービスワーカー)にイベントリスナーを追加します。

const messaging = firebase.messaging();

self.addEventListener('notificationclick', function(event) {
    if (event.action === 'like') {
        const photoId = event.notification.data.photoId;
        like(photoId);
    } else if (event.action === 'unsubscribe') {
        const notificationType = event.notification.data.notificationType;
        unsubscribe(notificationType);
    }
    event.notification.close();
});

このコードは、ユーザーが「いいね」ボタンをクリックした場合に写真IDを取得して「いいね」機能を呼び出します。また、「登録解除」ボタンをクリックした場合にも似たような処理が行われます。

ブラウザ互換性に関する注意点

各ブラウザが異なるパラメータをサポートしているため、ユーザーに適切な通知が届くよう、ブラウザ互換性のドキュメントを確認することが重要です。これにより、すべてのユーザーに一貫性のある体験を提供できます。

さらなる情報を探る

FCM Send APIがどのように機能するかを詳しく知りたい方は、FCM Send APIドキュメントWeb Notifications APIドキュメントをチェックしてください。また、もしFCM Send APIを利用してWeb Notifications APIを活用した面白い方法があれば、ぜひ共有してください。

Firebaseの最新情報は、Twitterの@FirebaseやFacebook、Google+で検索して見つけることができます。

この新しい機能を利用して、ぜひユーザーとのエンゲージメントを高める素晴らしい通知を作成してみてください!