intra-mart Accel Platform セットアップガイド 第42版 2023-06-30

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 のモバイル通知の同時利用は非対応です。

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コマンドで終了。

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. 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>

      • シークレットキーを設定してください。

      コラム

      アクセスキーおよびシークレットキーは AWS Identity and Access Management(IAM) で作成できます。
      ../../_images/notice_access_key.png
  • <push type=”ios” />

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

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

11.6.4.4. 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_1.png
  3. フォームに以下の内容を入力し、「続行」をクリックしてください。

    項目 説明
    プロジェクト名 任意の名前を入力してください。
    プロジェクトID 任意のIDを入力してください。
    ../../_images/notice_android_fcm_2.png
  4. 「Googleアナリティクス」を無効にし、「プロジェクトの作成」をクリックしてください。
    (Googleアナリティクスを利用する場合は有効にして必要な設定をおこなってください。)
    ../../_images/notice_android_fcm_3.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. プロジェクトの概要から設定を確認します。
    プロジェクト概要の歯車アイコンをクリックし、「プロジェクトを設定」をクリックしてください。
    ../../_images/notice_android_fcm_10.png
  12. プロジェクトのプロジェクトID、ウェブAPIキーを確認します。
    設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
    ../../_images/notice_android_fcm_11.png
  13. マイアプリ - AndroidアプリのアプリIDを確認します。
    設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
    ../../_images/notice_android_fcm_12.png
  14. クラウドメッセージングタブへ移動し、プロジェクト認証情報のサーバーキー、送信者IDを確認します。
    設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
    ../../_images/notice_android_fcm_13.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. <project-id>

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

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

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

      • クラウドメッセージングのサーバーキーを設定してください。
    6. <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.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)」を選択します。
    APIキー FCM の設定 で作成したサーバーキーを入力します。
    ../../_images/notice_android_asns_5.png

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

11.6.5.2.3. 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>

      • シークレットキーを設定してください。

      コラム

      アクセスキーおよびシークレットキーは AWS Identity and Access Management(IAM) で作成できます。
      ../../_images/notice_access_key.png
    6. <fcm-project-id>

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

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

      • FirebaseプロジェクトのウェブAPIキーを設定してください。
    9. <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>