iPhoneとAndroidアプリのプッシュ通知

:information_source: 概要 あなた自身のアプリを通じて、Discourseのプッシュ通知をiOSまたはAndroidに送信する
:hammer_and_wrench: リポジトリリンク GitHub - Sprachprofi/discourse-fcm-notifications: Send Discourse push notifications through FCM to any custom app
:open_book: インストールガイド Discourseにプラグインをインストールする方法

特徴

Discourseフォーラムを閲覧するためのアプリをお持ちの場合、このプラグインを使用すると、フォーラムからアプリ経由でプッシュ通知を送信できます。(まだアプリをお持ちでないが、欲しいかもしれない場合は、このミニマリストソリューションをご覧ください。)

ユーザーにとって便利: ユーザーがプライベートメッセージに関するプッシュ通知を受け取った場合、その通知をタップするとアプリが開き、そのプライベートメッセージが直接表示されます。これは、プッシュ通知がPushoverアプリを開き、メッセージへの到達方法が不明瞭になるDiscourse Pushover Notificationsを使用する場合と比較して大きな利点です。一方で、Pushover Notificationsは、アプリなしでプッシュ通知を取得したい場合に適しています。

ユニバーサル: メッセージレイヤーとしてGoogle Firebaseを使用するため、Googleが国によって禁止されていない限り、すべてのiOSおよびAndroidデバイスがこれらのプッシュ通知を受信できます。

設定

  1. プラグインをインストールして有効化します。
  2. アプリ用の無料Google Firebaseプロジェクトを作成します。FirebaseプロジェクトID、トークン、およびJSON(OAuthデータを含む)をDiscourseのプラグイン設定に追加します。
  3. アプリコードを調整します。
  • デバイスのトークンをYOUR_FORUM.com/fcm_notifications/automatic_subscribe?token=… に送信して、アクティブなユーザーをプッシュ通知にサブスクライブします。デバイスのトークンが変更されるたびにこれを呼び出すようにしてください。

  • YOUR_FORUM.com/fcm_notifications/automatic_subscribe?token=REMOVE を呼び出して、アクティブなユーザーのサブスクリプションを解除します。

  • プッシュ通知は次の形式になります。

    'data': {
      "linked_obj_type" => 'link',
      "linked_obj_data" => <url to the post/message referenced in the message>,
    },
    'notification': {
      title: <something like "USERNAME sent you a private message in TOPIC">,
      body: <beginning of the message>,
    }
    

したがって、プッシュ通知をタイトル/本文で表示し、それをタップするとアプリ内ブラウザでlinked_obj_dataのURLを開く必要があります。これはアプリのコードで定義する必要があるものです。

実装例

このプラグインと連携する、ミニマリストでありながら完全に機能するアプリのコードはこちらから入手できます。(これは、このプラグインを必要とした当社が作成した本番アプリのホワイトラベルバージョンです。)フォーラムを表示し、プッシュ通知を送信し、ユーザーのログイン/最後に読んだトピックを記憶するアプリだけが必要な場合は、ブランディングを変更してApp Storeに提出するだけで完了です。そうでなければ、基盤として使用できます。

このアプリからの収益は、プラグインの保守とさらなる開発の資金となります。

「いいね!」 4

プッシュ通知はDiscourse Hubアプリで機能しますか?

Discourse Hubアプリには、すでにプッシュ通知機能が搭載されています。

セルフホストサイトでもですか?

「いいね!」 1

うーん、100%確実ではありませんが、そうではないと思います。その場合、このプラグインは非常に役立つでしょう。

現時点では機能しません。どのアプリであっても、コードの変更が必要です。

プッシュ通知は、フォーラムとアプリ間でGoogle認証(またはGoogle Firebaseを使用しない場合は他の認証)を共有する必要があるため、自分で所有していないアプリではこのプラグインを使用することはできないと思います。これにより、Googleは潜在的に悪意のある通知やスパム通知を送信する責任者を特定し、そのアカウントを停止できます。また、Google認証は、設定方法によっては、ユーザーのGoogleアカウントに対して他の操作を実行するためにも使用される可能性があります。そのため、Discourse Hubアプリの作成者(または他のアプリの作成者)が、セルフインストールされたDiscourseフォーラムを持つすべてのユーザーとGoogle認証を共有したいとは考えていないと思います。もちろん、アプリコードにすべてのユーザーのGoogle認証を追加することもできません(ダウンロード後にエンドユーザーに依頼することもできません)。Google Firebaseプッシュ通知の場合、フォーラムとアプリは同じ組織によって所有されている必要があり、それを回避する方法はないと思います。

テストできるライブアプリはありますか?

上記を参照してください。このプラグインをフォーラムにインストールして既存のアプリに接続することはできません。それは、アプリの所有者がGoogle認証をあなたと共有する必要があることを意味します。

実装例を見たい場合は、https://youtube.com/shorts/iGmTBmhpD4A?feature=share を参照してください(表示されているアプリは、変更なしのこのコードです)。ただし、アプリは完全に異なる外観にすることも可能です。プラグインは、フォーラムがアプリにプッシュ通知を送信できるようにするだけで、表示方法はあなた次第です。