intra-mart Accel Platform セットアップガイド 第46版 2024-04-01

11.6. IM-Notice

11.6.1. 概要

IM-Noticeは、 intra-mart Accel Platform 上で動作しているさまざまなアプリケーションからの通知をデスクトップやスマートフォンに配信するための通知機能です。
Amazon Simple Notification Service(以下、Amazon SNS) や Firebase Cloud Messaging(以下、FCM)のサービスを使用し、スマートフォンアプリへ通知を配信することが可能です。

注意

IM-Notice を利用するには、OAuth認証モジュール が必要です。

注意

IM-Notice は統合Windows認証環境では利用できません。

注意

IM-Notice と Accel Platform Mobile のモバイル通知の同時利用は非対応です。

コラム

本ページで紹介しているAWSやFCM資材の作成方法は一例です。お客様の環境に合わせて対応してください。

11.6.2. 通知機能全般

通知機能全般を使用するための設定を行います。

11.6.2.1. モジュールの選択

IM-Juggling でモジュールを選択します。

  1. <(プロジェクト名)/juggling.im>の「ベースモジュール」タブから「通知機能」を開いてください。

    ../../_images/notice_module_1.jpeg
  2. 通知機能全般を選択します。

    ../../_images/notice_module_2.jpeg
  3. デスクトップへの通知を行う場合、デスクトップ通知機能を選択してください。

    ../../_images/notice_module_4.jpeg
  4. メッセージをクリックし、依存関係を解決してください。

    ../../_images/notice_module_5.jpeg
  5. 設定ファイルの解決を行うと、<(プロジェクト名)/conf> 配下に設定ファイルが出力されます。

    ../../_images/notice_module_6.jpeg

11.6.2.2. IM-Notice 設定ファイルの編集

IM-Juggling の <(プロジェクト名)/conf> 配下に出力されたim-notice-config.xmlを開き、以下の設定を行ってください。

  1. <base-url>

    • ベースURLを設定してください。
      この設定はショートカットURLの作成に使用されます。
      未設定の場合、server-context-config.xml で指定したベースURLが使用されます。
      <base-url>https://example.org/imart</base-url>
      
  2. <short-cut-duration-minutes>

    • ショートカットURLの有効期間を設定してください。単位は分です。
      「0」を設定した場合、ショートカットURLは作成されません。
      デフォルトでは43200分=30日が設定されています。
      <short-cut-duration-minutes>43200</short-cut-duration-minutes>
      

11.6.2.3. ベースURLの設定

IM-Noticeへのメッセージ配信処理をジョブ経由で行う場合は、ベースURLの設定が必要です。 「ベースURL」または、「テナント環境情報 」から設定を行ってください。

注意

ベースURLを指定しない場合、以下のエラーが発生します。
jp.co.intra_mart.system.notice.exception.NoticeRuntimeException: [E.NOTICE.CORE.00016] ベースURLを解決できませんでした。

11.6.3. デスクトップ通知機能

デスクトップ通知機能を使用するための設定を行います。

11.6.3.1. スタンドアローン構成の場合

スタンドアローン構成の場合は、Web Application Server とデスクトップ通知のクライアントが直接通信を行います。
IM-Notice MQ設定ファイル(im-notice-mq-config)を設定する必要があります。
../../_images/notice_construction_standalone.png

図 スタンドアローンのサーバ構成例(デスクトップ通知)

11.6.3.1.1. IM-Notice MQ設定ファイルの編集

IM-Juggling の <(プロジェクト名)/conf> 配下に出力されたim-notice-mq-config.xmlを開き、以下の設定を行ってください。
  1. <address>
    • デスクトップ通知で使用するポート番号を設定してください。
      デフォルトでは40608ポートを使用する設定です。
      クライアントからサーバまでのネットワーク機器などに対して、ここで指定したポートを開放してください。
      <address bind="true">tcp://*:40608</address>
      
  2. <ping>
    • ping機能の設定をします。
      有効にするには、enable属性に「true」を設定してください。
    • interval-seconds属性で、クライアントにpingを流す間隔を設定します。単位は秒です。
    • time-to-live-seconds属性で、クライアントがサーバに再接続を行うまでの時間を設定します。単位は秒です。
      設定した秒数だけサーバから応答がなければ、クライアントはサーバに再接続を行います。
      <ping enable="true" interval-seconds="270" time-to-live-seconds="300" />
      

    コラム

    環境により、一定時間データが流れないソケットは切断されてしまう場合があります。
    そのような環境では、数分間隔でpingを流し続けることで自動切断を避けることができます。
    (Microsoft AzureやAmazon Elastic Compute Cloudなど)
  3. <endpoint>
    • クライアントの接続先を設定します。
      <address>で設定したポート番号を指定してください。
      <endpoints>
          <endpoint>tcp://example.org:40608</endpoint>
      </endpoints>
      

11.6.3.2. 分散構成やWeb Serverを利用している構成の場合

分散構成やWeb Serverを利用している構成の場合は、ブローカーのサービスを実行するサーバの起動、および設定ファイルの編集が必要です。
../../_images/notice_construction_sa_ws.png

図 WebServerなどを含む分散構成のサーバ構成例(デスクトップ通知)

コラム

ブローカーとは、ネットワーク中継を行うためのプロキシです。

コラム

ブローカーサービスを実行するサーバのシステム要件は「リリースノート」-「システム要件」を参照してください。

11.6.3.2.1. IM-Notice MQ設定ファイルの編集

IM-Juggling で出力されたim-notice-mq-config.xmlを編集してください。
  1. <address> および <endpoint>
    <address> の bind 属性に false を指定し、ブローカーのバックエンドポートの接続情報を設定してください。
    <endpoint> にブローカーのフロントエンドポートの接続情報を設定してください。
    <address bind="false">tcp://{ブローカーを実行しているサーバのホストまたはIPアドレス}:{ブローカーのバックエンドポート番号}</address>
    <ping enable="true" interval-seconds="270" time-to-live-seconds="300" />
    <endpoints>
      <endpoint>tcp://{ブローカーを実行しているサーバのホストまたはIPアドレス}:{ブローカーのフロントエンドポート番号}</endpoint>
    </endpoints>
    

コラム

IM-Notice MQ設定ファイルのその他の項目については IM-Notice MQ設定ファイルの編集 を参照してください。

11.6.3.2.2. ブローカーサービス実行ファイルの取得

ブローカーサービスを実行する実行ファイル(im_notice_mq_broker)を取得します。
弊社サイトの プロダクトファイルダウンロード よりライセンスキーを入力して取得してください。

11.6.3.2.3. IM-Notice MQブローカー設定ファイルの編集

取得したブローカーサービス実行ファイルを展開したconfディレクトリ内のim-notice-mq-broker-config.xmlを編集します。
  1. <frontend>
    • デスクトップ通知アプリケーションとの通信を行うポート番号を設定してください。
      デフォルトでは40608ポートを使用する設定です。
      クライアントからブローカーまでのネットワーク機器などに対して、ここで指定したポートを開放してください。
      <frontend>tcp://*:40608</frontend>
      
  2. <backend>
    • Web Application Server との通信を行うポート番号を設定してください。
      デフォルトでは40609ポートを使用する設定です。
      ブローカーからサーバまでのネットワーク機器などに対して、ここで指定したポートを開放してください。
      <backend>tcp://*:40609</backend>
      

コラム

IM-Notice MQブローカー設定ファイルのその他の項目は IM-Notice ブローカー設定ファイルと同様です。
IM-Notice ブローカー設定ファイルについては IM-Notice MQ設定ファイルの編集 を参照してください。

11.6.3.2.4. ブローカーサービスの実行

取得したブローカーサービス実行ファイルを展開したディレクトリにある im_notice_mq_broker-8.0.x.jar をjavaコマンドで実行してください。

フォアグラウンドで動作させる場合(例)

java -jar im_notice_mq_broker-8.0.x.jar
バックグラウンドで動作させる場合(例)
nohup java -jar im_notice_mq_broker-8.0.x.jar > stdout.log 2>stderr.log &

コラム

実行したブローカーサービスを停止する場合は、実行方法に応じた停止を行ってください。
上記実行例に対する停止方法は以下です。
  • フォアグラウンドでjavaコマンドを実行した場合、Ctrl-C で終了。
  • バックグラウンドでjavaコマンドを実行した場合、プロセスIDを調べてkillコマンドで終了。

コラム

Java 17 で運用する場合、javaコマンドの直後に --add-opens java.base/java.lang=ALL-UNNAMED を追加して実行してください。
  • フォアグラウンドで動作させる場合(例)
java --add-opens java.base/java.lang=ALL-UNNAMED -jar im_notice_mq_broker-8.0.x.jar
  • バックグラウンドで動作させる場合(例)
nohup java --add-opens java.base/java.lang=ALL-UNNAMED -jar im_notice_mq_broker-8.0.x.jar > stdout.log 2>stderr.log &

11.6.4. モバイル通知機能(iOS版)

モバイル通知機能を使用するための設定を行います。 iOSへの通知を行うには、Amazon SNSを使用します。

../../_images/notice_construction_ios.png

図 Amazon SNSを利用したサーバ構成例

11.6.4.1. P12証明書ファイルの取得

P12証明書ファイル(IM-Notice Push Notifications Production.p12)を取得します。
弊社サイトの プロダクトファイルダウンロード よりライセンスキーを入力して取得してください。

11.6.4.2. Amazon SNSの設定

Amazon SNSの設定を行います。

  1. Amazon SNS にサインインしてください。
    ../../_images/notice_v2_ios_1.png
  2. リージョンを選択してください。
    ../../_images/notice_v2_ios_2.png
  3. サービスを選択してください。
    ../../_images/notice_v2_ios_3.png
  4. 「Mobile」-「プッシュ通知」から「プラットフォームアプリケーションの作成」をクリックしてください。
    ../../_images/notice_v2_ios_4.png
  5. フォームに以下の内容を入力し、「プラットフォームアプリケーションの作成」をクリックしてください。

    項目 説明
    アプリケーション名 任意の名前を入力します。
    プッシュ通知プラットフォーム 「Apple iOS/VoIP/Mac」を選択します。
    プッシュ証明書タイプ 「iOS プッシュ証明書」を選択します。
    ファイルの選択 「IM-Notice Push Notifications Production.p12」を添付します。
    証明書のパスワード 「intra-mart」と入力し、「認証情報をファイルから読み込み」をクリックします。
    ../../_images/notice_v2_ios_5.png
  6. アプリケーションが追加されました。
    「ARN」を確認します。
    設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
    ../../_images/notice_v2_ios_6.png

11.6.4.3. ポリシーの作成

Amazon SNSに接続するために必要な権限を付与するための、IAMポリシーの作成を行います。
作成したポリシーは、 アクセスキーとシークレットキーの作成 または ロールの作成 に使用します。
  1. AWS Identity and Access Management (IAM) にサインインしてください。
  2. 「ポリシー」を選択し、「ポリシーを作成」を押下してください。
    ../../_images/notice_create_policy_1.png
  3. 「サービスを選択」にて「SNS」を検索し、選択してください。
    ../../_images/notice_create_policy_2.png
  4. サービスを選択すると表示される「アクション許可」にて以下4つのアクションをそれぞれ検索し、チェックを入れてください。
    • SetEndpointAttributes
    • GetEndpointAttributes
    • Publish
    • CreatePlatformEndpoint
    ../../_images/notice_create_policy_3.png
  5. 選択したサービス、および、アクションが表示されていることを確認してください。
    その後、「リソース」にて「特定」を選択し、「このアカウント内のいずれか」にチェックを入れ、「次へ」を押下してください。
    ../../_images/notice_create_policy_4.png
  6. 「ポリシー名」に任意のポリシー名を入力し、「ポリシーの作成」を押下してください。
    ../../_images/notice_create_policy_5.png
  7. ポリシーが作成されました。
    作成されたポリシー名は アクセスキーとシークレットキーの作成ロールの作成 に使用しますので、控えておいてください。
    ../../_images/notice_create_policy_6.png

11.6.4.4. アクセスキーとシークレットキーの作成

Amazon SNSへの接続に必要な、アクセスキーとシークレットキーの作成を行います。

コラム

アクセスキーとシークレットキー、または、ロールのうち、いずれか一方の作成が必要です。
なお、ロールは、お客様環境がEC2インスタンス上で稼働している場合のみ利用できます。
  1. AWS Identity and Access Management (IAM) にサインインしてください。
  2. 「ユーザー」を選択し、「ユーザーの作成」を押下してください。
    ../../_images/notice_create_key_1.png
  3. 「ユーザー名」に任意のユーザー名を入力し、「次へ」を押下してください。
    ../../_images/notice_create_key_2.png
  4. 「許可のオプション」にて「ポリシーを直接アタッチする」を選択してください。
    その後、 ポリシーの作成 で作成したポリシー名にチェックを入れ、「次へ」を押下してください。
    ../../_images/notice_create_key_3.png
  5. 「ユーザーの作成」を押下してください。
    ../../_images/notice_create_key_4.png
  6. 作成したユーザー名を押下してください。
    ../../_images/notice_create_key_5.png
  7. 「セキュリティ認証情報」タブを押下し、「アクセスキー」にて「アクセスキーを作成」を押下してください。
    ../../_images/notice_create_key_6.png
  8. 「コマンドラインインターフェイス (CLI)」を選択し、「上記のレコメンデーションを理解し、アクセスキーを作成します。」にチェックを入れ、「次へ」を押下してください。
    ../../_images/notice_create_key_7.png
  9. 「アクセスキーを作成」を押下してください。
    ../../_images/notice_create_key_8.png
  10. 「アクセスキーを取得」画面でアクセスキーとシークレットアクセスキーを控えるか、「.csv ファイルをダウンロード」を押下してください。その後、「完了」を押下してください。
    ../../_images/notice_create_key_9.png

11.6.4.5. ロールの作成

Amazon SNSへの接続に必要な、IAMロールの作成を行います。

コラム

アクセスキーとシークレットキー、または、ロールのうち、いずれか一方の作成が必要です。
なお、ロールは、お客様環境がEC2インスタンス上で稼働している場合のみ利用できます。
  1. AWS Identity and Access Management (IAM) にサインインしてください。
  2. 「ロール」を選択し、「ロールを作成」を押下してください。
    ../../_images/notice_create_role_1.png
  3. 「信頼されたエンティティタイプ」にて「カスタム信頼ポリシー」を選択し、「カスタム信頼ポリシー」に以下を入力してください。
    ${AWSアカウントID}${EC2インスタンスにアタッチされたロール名} の箇所は、お客様の環境に合わせて変更してください。
    その後、「次へ」を押下してください。
    {
       "Version": "2012-10-17",
       "Statement": [
          {
                "Effect": "Allow",
                "Principal": {
                   "AWS": "arn:aws:iam::${AWSアカウントID}:role/${EC2インスタンスにアタッチされたロール名}"
                },
                "Action": "sts:AssumeRole"
          }
       ]
    }
    
    ../../_images/notice_create_role_2.png
  4. 「許可ポリシー」にて、 ポリシーの作成 で作成したポリシー名にチェックを入れ、「次へ」を押下してください。
    ../../_images/notice_create_role_3.png
  5. 「ロール名」に任意のロール名を入力し、「ロールを作成」を押下してください。
    ../../_images/notice_create_role_4.png
  6. ロールが作成されました。
    作成されたロールのARNは設定ファイルの編集に使用しますので、控えておいてください。
    ../../_images/notice_create_role_5.png

11.6.4.6. IM-Notice Mobile設定ファイルの編集

IM-Juggling の <(プロジェクト名)/conf> 配下に出力されたim-notice-mobile-config.xmlを開き、以下の設定を行ってください。
  • <proxy>

    1. Amazon SNSへ接続するためにプロキシを使用する場合、設定を行ってください。

      <proxy enable="true">
          <host></host>
          <port xsi:nil="true"></port> <!-- ポート番号を指定する場合は xsi:nil="true" を削除してください。 -->
          <username></username>
          <password></password>
          <workstation></workstation>
          <domain></domain>
      </proxy>
      
  • <asns>

    1. <asns>のname属性に任意の名前を設定してください。

      <asns name="asns-apns">
          ....
      </asns>
      
    2. <endpoint>

      • Amazon SNSのリージョンに対応するEndpointを設定してください。
        <endpoint>sns.ap-northeast-1.amazonaws.com</endpoint>
        

        コラム

        Endpointは AWS documentation - Regions and Endpoints で確認できます。
        リージョンが「Asia Pacific (Tokyo)」の場合、Endpoint は「sns.ap-northeast-1.amazonaws.com」です。
    3. <platform-application-arn>

      <platform-application-arn>arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:app/APNS/IM-Notice_APNS</platform-application-arn>
      
    4. <access-key>

    5. <secret-key>

    6. <iam-role-arn>

      • 通知にロールを使う場合、 ロールの作成 で作成したロールのARNを設定してください。
  • <push type=”ios” />

    1. engine属性に、<asns>のname属性に設定した名前を指定してください。

      <push type="ios" engine="asns-apns" />
      

11.6.4.7. P12証明書ファイルの更新

P12証明書ファイル(IM-Notice Push Notifications Production.p12)の有効期限が切れてしまった、または新しいP12証明書ファイルが公開された場合、更新を行います。 有効期限が過ぎてしまったP12証明書ファイルを利用した場合、通知が届かなくなるため、有効期限が切れる前に新しいP12証明書ファイルに更新してください。

  1. 弊社サイトのダウンロード ライブラリから最新のP12証明書ファイルを取得してください。

  2. Amazon SNSにサインインしてください。
    ../../_images/notice_v2_ios_1.png
  3. リージョンを選択してください。
    ../../_images/notice_v2_ios_2.png
  4. サービスを選択してください。
    ../../_images/notice_v2_ios_3.png
  5. 「Mobile」ー「プッシュ通知」からアプリケーションを選択し、「編集」をクリックします。
    ../../_images/notice_v2_ios_7.png
  6. フォームに以下の内容を入力し、「変更の保存」をクリックしてください。
    プッシュ証明書タイプ 「iOS プッシュ証明書」を選択します。
    ファイルの選択 「IM-Notice Push Notifications Production.p12」を添付します。
    証明書のパスワード 「intra-mart」と入力し、「認証情報をファイルから読み込み」をクリックします。
    ../../_images/notice_v2_ios_8.png

11.6.5. モバイル通知機能(Android版)

モバイル通知機能を使用するための設定を行います。 Androidへの通知を行うには、以下の2種類の構成が利用できます。

  • FCM を使用する場合の設定方法は、 FCMを使用する場合 を参照してください。
    ../../_images/notice_construction_android_1.png

    図 FCM を使用する場合のサーバ構成例

  • FCM+Amazon SNSを使用する場合の設定方法は、 FCM+Amazon SNSを使用する場合 を参照してください。
    ../../_images/notice_construction_android_2.png

    図 FCM+Amazon SNS を使用する場合のサーバ構成例

コラム

Amazon SNSを組み合わせて使用することで、Push通知対象となっているデバイスのトークンリストや、その状態(有効または無効)をAmazon SNSで一覧できます。
また、AndroidとiOSを併用する場合、Amazon SNSで一元管理が可能です。

注意

中国国内ではFCM(Firebase Cloud Messaging)を利用できません。

11.6.5.1. FCMを使用する場合

FCMを使用しAndroidへの通知を行う場合、以下の設定を行ってください。

11.6.5.1.1. FCMの設定

FCMの設定を行います。

  1. Firebase Console にログインしてください。
  2. プロジェクトを作成します。
    ../../_images/notice_android_fcm_74.png
  3. フォームに以下の内容を入力し、「続行」をクリックしてください。

    項目 説明
    プロジェクト名 任意の名前を入力してください。
    プロジェクトID 任意のIDを入力してください。
    ../../_images/notice_android_fcm_2.png
  4. 「Googleアナリティクス」を無効にし、「プロジェクトの作成」をクリックしてください。
    (Googleアナリティクスを利用する場合は有効にして必要な設定をおこなってください。)
    ../../_images/notice_android_fcm_75.png
  5. プロジェクトの準備ができたら、「続行」をクリックしてください。
    ../../_images/notice_android_fcm_4.png
  6. 作成したプロジェクトをクリックしてください。
    ../../_images/notice_android_fcm_5.png
  7. プロジェクトへAndroidアプリを追加します。「Androidアプリ追加」アイコンをクリックしてください。
    ../../_images/notice_android_fcm_6.png
  8. フォームに以下の内容を入力し、「アプリを登録」をクリックしてください。

    項目 説明
    Android パッケージ名 jp.co.intra_mart.system.notice.android
    ../../_images/notice_android_fcm_7.png
  9. 「次へ」をクリックし、4まで進めてください。
    ../../_images/notice_android_fcm_8.png
  10. 「コンソールに進む」をクリックしてください。
    ../../_images/notice_android_fcm_9.png
  11. ウェブAPIキーを発行するために、Androidアプリにプロダクトを追加します。「Authentication」をクリックしてください。
    ../../_images/notice_android_fcm_10.png
  12. 「始める」をクリックしてください。
    ../../_images/notice_android_fcm_72.png
  13. 「Sign-in method」タブを選択し、ログイン プロバイダ「メール/パスワード」をクリックしてください。
    ../../_images/notice_android_fcm_12.png
  14. 「有効にする」をONに変更し、「保存」をクリックしてください。
    ../../_images/notice_android_fcm_13.png

    コラム

    この項目の操作はウェブAPIキー発行のために行います。「メール/パスワード」の機能を利用しない場合は、ウェブAPIキー発行の発行が確認でき次第無効化してください。
  15. サービスアカウントの秘密鍵を生成します。
    プロジェクト概要の歯車アイコンをクリックし、「プロジェクトを設定」をクリックしてください。
    ../../_images/notice_android_fcm_14.png
  16. 「サービスアカウント」タブを選択し、「新しい秘密鍵を生成」をクリックしてください。
    ../../_images/notice_android_fcm_15.png
  17. 表示されたメッセージを確認し、「キー生成」をクリックしてください。
    秘密鍵が生成されると、JSON 形式のサービスアカウントの認証情報ファイルがダウンロードされます。
    設定ファイルを編集する際に、設定ファイルと同じディレクトリに配置する必要がありますので、保持しておいてください。
    ../../_images/notice_android_fcm_16.png
  18. 全般タブを選択し、プロジェクトのプロジェクトID、ウェブAPIキーを確認します。
    設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
    ../../_images/notice_android_fcm_17.png
  19. マイアプリ - AndroidアプリのアプリIDを確認します。
    設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
    ../../_images/notice_android_fcm_18.png
  20. クラウドメッセージングタブへ移動し、送信者IDを確認します。
    設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
    ../../_images/notice_android_fcm_19.png

11.6.5.1.2. IM-Notice Mobile設定ファイルの編集

IM-Juggling の <(プロジェクト名)/conf> 配下に出力されたim-notice-mobile-config.xmlを開き、以下の設定を行ってください。
  • <proxy>

    1. Firebase Cloud Messagingへ接続するためにプロキシを使用する場合、設定を行ってください。

      <proxy enable="true">
          <host></host>
          <port xsi:nil="true"></port> <!-- ポート番号を指定する場合は xsi:nil="true" を削除してください。 -->
          <username></username>
          <password></password>
          <workstation></workstation>
          <domain></domain>
      </proxy>
      
  • <fcm>

    1. <fcm>のname属性に任意の名前を設定してください。

      <fcm name="fcm">
          ....
      </fcm>
      
    2. <url>

      • https://fcm.googleapis.com/v1/projects/%REPLACE_WITH_PROJECT_ID%/messages:send を指定してください。
        ただし、%REPLACE_WITH_PROJECT_ID% はFirebaseプロジェクトのプロジェクトIDに置き換えて指定してください。
    3. <project-id>

      • FirebaseプロジェクトのプロジェクトIDを設定してください。
    4. <application-id>

      • AndroidアプリのアプリIDを設定してください。
    5. <api-key>

      • FirebaseプロジェクトのウェブAPIキーを設定してください。
    6. <credentials-file>

      • ダウンロードした JSON 形式のサービスアカウントの認証情報ファイルを im-notice-mobile-config.xml と同じディレクトリに配置してください。
        credentials-file には、認証情報ファイルのファイル名を設定してください。
    7. <sender-id>

      • クラウドメッセージングの送信者IDを設定してください。

      コラム

      各項目の確認方法は、 FCMの設定 を参照してください。
  • <push type=”android” />

    1. engine属性に、<fcm>のname属性に設定した名前を指定してください。
    <push type="android" engine="fcm" />
    
  • <max-push-subject-length>

    1. Push通知受信時に表示するタイトルの最大文字数を設定してください。
    <max-push-subject-length>30</max-push-subject-length>
    
  • <max-push-body-length>

    1. Push通知受信時に表示する本文の最長文字数を設定してください。
    <max-push-body-length>70</max-push-body-length>
    

11.6.5.1.3. サービスアカウントの認証情報ファイルの更新

サービスアカウントの秘密鍵は、定期的にローテーションすることが推奨されています。
詳しくは「サービスアカウントキーのローテーション」を参照してください。
本項では、サービスアカウントの秘密鍵を新しく生成し、通知の送信に使用する認証情報ファイルを更新する手順を説明します。
  1. サービスアカウントの新しい秘密鍵を作成します。
    Firebase Console にログインしてください。
  2. 対象のプロジェクトをクリックしてください。
    ../../_images/notice_android_fcm_5.png
  3. プロジェクト概要の歯車アイコンをクリックし、「プロジェクトを設定」をクリックしてください。
    ../../_images/notice_android_fcm_14.png
  4. 「サービスアカウント」タブを選択し、「サービスアカウント権限の管理」をクリックしてください。
    ../../_images/notice_android_fcm_30.png
  5. 「firebase-adminsdk」という名前のアカウントの行の縦三点リーダー「⋮」をクリックし、「鍵を管理」をクリックしてください。
    ../../_images/notice_android_fcm_73.png
  6. 「鍵を追加」をクリックし、「新しい鍵を作成」をクリックしてください。
    ../../_images/notice_android_fcm_32.png
  7. 「作成」をクリックしてください。
    秘密鍵が生成されると、JSON 形式のサービスアカウントの認証情報ファイルがダウンロードされます。
    このファイルは、intra-mart Accel Platform にアップロードする必要がありますので、保持しておいてください。
    ../../_images/notice_android_fcm_33.png
  8. サービスアカウントの認証情報ファイルを intra-mart Accel Platform にアップロードすることで、認証情報を更新できます。
    intra-mart Accel Platform にシステム管理者でログインしてください。
  9. 「システム管理」→「モバイル通知」→「Firebase サービスアカウント認証情報」をクリックしてください。
    ../../_images/notice_android_fcm_34.png
  10. 認証情報ファイルアップロードをクリックしてください。
    ../../_images/notice_android_fcm_35.png
  11. サービスアカウントの認証情報ファイルを選択し、更新をクリックしてください。
    ../../_images/notice_android_fcm_36.png
  12. 更新確認ダイアログで決定をクリックすると更新できます。
    ../../_images/notice_android_fcm_37.png

11.6.5.1.4. FCM HTTP v1 API への移行

intra-mart Accel Platform 2023 Autumn(Hollyhock) 以前のバージョンでは、IM-Notice で FCM を使用して通知を送信する際に、FCM HTTP API (Legacy HTTP API) が使用されていました。
FCM HTTP API (Legacy HTTP API) は、2024年6月20日に廃止される予定です。
intra-mart Accel Platform 2024 Spring(Iris) 以降のバージョンから、FCM HTTP v1 API を使用して通知を送信可能です。
本項では、intra-mart Accel Platform 2023 Autumn(Hollyhock) 以前のバージョンで FCM を使用して通知を送信していた場合に、intra-mart Accel Platform 2024 Spring(Iris) 以降にバージョンアップ後、FCM HTTP v1 API が使用されるように設定する手順を説明します。
  1. Firebase Console にログインしてください。
  2. 対象のプロジェクトをクリックしてください。
    ../../_images/notice_android_fcm_5.png
  3. プロジェクト概要の歯車アイコンをクリックし、「プロジェクトを設定」をクリックしてください。
    ../../_images/notice_android_fcm_14.png
  4. 「Cloud Messaging」タブをクリックし、Firebase Cloud Messaging API(V1)が有効であることを確認してください。
    無効だった場合は有効にしてください。
    ../../_images/notice_android_fcm_50.png
  5. 「サービスアカウント」タブを選択し、「新しい秘密鍵を生成」をクリックしてください。
    ../../_images/notice_android_fcm_15.png
  6. 表示されたメッセージを確認し、「キー生成」をクリックしてください。
    秘密鍵が生成されると、JSON 形式のサービスアカウントの認証情報ファイルがダウンロードされます。
    設定ファイルを編集する際に、設定ファイルと同じディレクトリに配置する必要がありますので、保持しておいてください。
    ../../_images/notice_android_fcm_16.png
  7. IM-Juggling の <(プロジェクト名)/conf> 配下に出力された im-notice-mobile-config.xml を開き、<server-key> を削除して <credentials-file> を追加してください。
    <credentials-file> には、ダウンロードした JSON 形式のサービスアカウント認証情報ファイルのファイル名を設定してください。
    認証情報ファイルを im-notice-mobile-config.xml と同じディレクトリに配置してください。
    また、<url> には https://fcm.googleapis.com/v1/projects/%REPLACE_WITH_PROJECT_ID%/messages:send を設定してください。
    ただし、%REPLACE_WITH_PROJECT_ID% はFirebaseプロジェクトのプロジェクトIDに置き換えて設定してください。
         <fcm name="fcm">
             <url>https://fcm.googleapis.com/v1/projects/xxxxxxxxxxxx/messages:send</url>
             <project-id>xxxxxxxxxxxx</project-id>
             <application-id>xxxxxxxxxxxx</application-id>
             <api-key>xxxxxxxxxxxx</api-key>
             <!-- <server-key>xxxxxxxxxxxx</server-key> -->
             <credentials-file>xxxxxxxxxxxx.json</credentials-file>
             <sender-id>xxxxxxxxxxxx</sender-id>
         </fcm>
    
  8. WAR ファイルを出力して再デプロイすることで、FCM HTTP v1 API への移行が完了します。
    WAR ファイルの出力に関しては「WARファイルの出力」を、再デプロイに関しては「WARファイルの再デプロイ」を参照してください。

11.6.5.2. FCM+Amazon SNSを使用する場合

FCMとAmazon SNSを使用しAndroidへの通知を行う場合、以下の設定を行ってください。

11.6.5.2.1. FCM の設定

FCMの設定を行います。

コラム

FCMの設定方法は、 FCMの設定 を参照してください。

11.6.5.2.2. Amazon SNS の設定

Amazon SNSの設定を行います。

  1. Amazon SNS にサインインしてください。
    ../../_images/notice_android_asns_1.png
  2. リージョンを選択してください。
    ../../_images/notice_android_asns_2.png
  3. サービスを選択してください。
    ../../_images/notice_android_asns_3.png
  4. 「Mobile」-「プッシュ通知」から「プラットフォームアプリケーションの作成」をクリックしてください。
    ../../_images/notice_android_asns_4.png
  5. フォームに以下の内容を入力し、「プラットフォームアプリケーションの作成」をクリックしてください。

    項目 説明
    アプリケーション名 任意の名前を入力します。
    プッシュ通知プラットフォーム 「Firebase Cloud Messaging(FCM)」を選択します。
    認証方法 「トークン (推奨)」を選択します。
    Service Json FCM の設定 でダウンロードした JSON 形式のサービスアカウントの認証情報ファイルを選択します。
    ../../_images/notice_android_asns_5.png

  6. アプリケーションが追加されました。
    「ARN」を確認します。
    設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
    ../../_images/notice_android_asns_6.png

11.6.5.2.3. ポリシーの作成

Amazon SNSに接続するために必要な権限を付与するための、IAMポリシーの作成を行います。
作成したポリシーは、 アクセスキーとシークレットキーの作成 または ロールの作成 に使用します。

コラム

ポリシーの作成方法は、 ポリシーの作成 を参照してください。

11.6.5.2.4. アクセスキーとシークレットキーの作成

Amazon SNSへの接続に必要な、アクセスキーとシークレットキーの作成を行います。

コラム

アクセスキーとシークレットキーの作成方法は、 アクセスキーとシークレットキーの作成 を参照してください。

11.6.5.2.5. ロールの作成

Amazon SNSへの接続に必要な、IAMロールの作成を行います。

コラム

ロールの作成方法は、 ロールの作成 を参照してください。

11.6.5.2.6. IM-Notice Mobile設定ファイルの編集

IM-Juggling の <(プロジェクト名)/conf> 配下に出力されたim-notice-mobile-config.xmlを開き、以下の設定を行ってください。
  • <proxy>

    1. Firebase Cloud MessagingやAmazon SNSへ接続するためにプロキシを使用する場合、設定を行ってください。

      <proxy enable="true">
          <host></host>
          <port xsi:nil="true"></port> <!-- ポート番号を指定する場合は xsi:nil="true" を削除してください。 -->
          <username></username>
          <password></password>
          <workstation></workstation>
          <domain></domain>
      </proxy>
      
  • <asns>

    1. <asns>のname属性に任意の名前を設定してください。

      <asns name="asns-fcm">
          ....
      </asns>
      
    2. <endpoint>

      • Amazon SNSのリージョンに対応するEndpointを設定してください。
        <endpoint>sns.ap-northeast-1.amazonaws.com</endpoint>
        

        コラム

        Endpointは AWS documentation - Regions and Endpoints で確認できます。
        リージョンが「Asia Pacific (Tokyo)」の場合、Endpointは「sns.ap-northeast-1.amazonaws.com」です。
    3. <platform-application-arn>

      • Application ARNを設定してください。

        コラム

        Application ARNの確認方法は、 Amazon SNS の設定 を参照してください。
    4. <access-key>

    5. <secret-key>

    6. <iam-role-arn>

      • 通知にロールを使う場合、 ロールの作成 で作成したロールのARNを設定してください。
    7. <fcm-project-id>

      • FirebaseプロジェクトのプロジェクトIDを設定してください。
    8. <fcm-application-id>

      • AndroidアプリのアプリIDを設定してください。
    9. <fcm-api-key>

      • FirebaseプロジェクトのウェブAPIキーを設定してください。
    10. <fcm-sender-id>

      • Firebase クラウドメッセージングの送信者IDを設定してください。

      コラム

      プロジェクトID等Firebase設定情報の確認方法は、 FCMの設定 を参照してください。
  • <push type=”android” />

    1. engine属性に、<asns>のname属性に設定した名前を指定してください。

      <push type="android" engine="asns-fcm" />
      
  • <max-push-subject-length>

    1. Push通知受信時に表示するタイトルの最大文字数を設定してください。
    <max-push-subject-length>30</max-push-subject-length>
    
  • <max-push-body-length>

    1. Push通知受信時に表示する本文の最長文字数を設定してください。
    <max-push-body-length>70</max-push-body-length>