プッシュ通知を上書きする方法

こんにちは!YOUTRUSTでWebエンジニアをしている大竹(YOUTRUST)です。

インフルエンザが流行ってきているので、体調管理に気をつけていきたいと思います。

本日のテーマ

昨年(2024.10)にチャットメッセージの取り消し機能をリリースしたのですが、その際にプッシュ通知の上書きを行ったので、本日はその方法についてお話しします。

チャットメッセージの取り消し機能

YOUTRUSTにはチャット機能があり、ユーザーとメッセージを送り合うことができます。メッセージを受け取るとプッシュ通知が送られるようになっており、プッシュ通知にてメッセージの内容を確認することができます。

今回リリースしたチャットメッセージの取り消し機能は、文字通り送信したメッセージを取り消す機能です。間違えてメッセージを送ってしまった場合などに使うことができます。

上述の通り、プッシュ通知にもメッセージの内容が含まれるため、単純に取り消したメッセージを表示しないようにするだけだと不十分で、プッシュ通知の内容も書き換える(具体的には内容を空に書き換える)必要があります。

プッシュ通知の上書き

YOUTRUSTではプッシュ通知を送るためにFirebase Cloud Messaging(FCM)を使用しています。

FCMのドキュメントを見たところ、iOSアプリ、Androidアプリで指定方法は異なるものの、プッシュ通知送信時に識別子を指定し、その識別子をもとにプッシュ通知を上書きできることがわかりました。

以下にiOSアプリ、Androidアプリのそれぞれで、プッシュ通知を上書きする方法を記載します。

iOSアプリのプッシュ通知の上書き

ApnsConfigheadersにてapns-collapse-idに識別子を指定します。

具体的には、メッセージ送信時に以下のようなPayloadを指定します。

{
  "message": {
    ...,
    "apns": {
      ...,
      "headers": {
        ...,
        "apns-collapse-id": [識別子]
      }
    }
  }
}

Androidアプリのプッシュ通知の上書き

AndroidNotificationtagに識別子を指定します。

具体的には、メッセージ送信時に以下のようなPayloadを指定します。

{
  "message": {
    ...,
    "android": {
      ...,
      "notification": {
        ...,
        "tag": [識別子]
      }
    }
  }
}

まとめ

プッシュ通知を上書きする方法についてお話ししました!

プッシュ通知を上書きしたいケースはそれほどない?ような気もしますが、ぜひお役に立てると嬉しいです!

最後に

YOUTRUSTではエンジニアを積極的に採用しています!

様々なポジションで求人を出しているので、ご興味のある方は是非以下の募集をご覧ください!

herp.careers