11.6. IM-Notice¶
11.6.1. 概要¶
注意
IM-Notice を利用するには、OAuth認証モジュール が必要です。注意
IM-Notice は統合Windows認証環境では利用できません。注意
IM-Notice と Accel Platform Mobile のモバイル通知の同時利用は非対応です。コラム
本ページで紹介しているAWSやFCM資材の作成方法は一例です。お客様の環境に合わせて対応してください。
11.6.2. 通知機能全般¶
通知機能全般を使用するための設定を行います。
11.6.2.2. IM-Notice 設定ファイルの編集¶
IM-Juggling の <(プロジェクト名)/conf> 配下に出力されたim-notice-config.xmlを開き、以下の設定を行ってください。
<base-url>
- ベースURLを設定してください。この設定はショートカットURLの作成に使用されます。未設定の場合、server-context-config.xml で指定したベースURLが使用されます。
<base-url>https://example.org/imart</base-url>
<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. スタンドアローン構成の場合¶
11.6.3.1.1. IM-Notice MQ設定ファイルの編集¶
- <address>
デスクトップ通知で使用するポート番号を設定してください。デフォルトでは40608ポートを使用する設定です。クライアントからサーバまでのネットワーク機器などに対して、ここで指定したポートを開放してください。<address bind="true">tcp://*:40608</address>
- <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など)
- <endpoint>
クライアントの接続先を設定します。<address>で設定したポート番号を指定してください。<endpoints> <endpoint>tcp://example.org:40608</endpoint> </endpoints>
11.6.3.2. 分散構成やWeb Serverを利用している構成の場合¶
11.6.3.2.1. IM-Notice MQ設定ファイルの編集¶
IM-Juggling で出力されたim-notice-mq-config.xmlを編集してください。
- <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. ブローカーサービス実行ファイルの取得¶
11.6.3.2.3. IM-Notice MQブローカー設定ファイルの編集¶
- <frontend>
デスクトップ通知アプリケーションとの通信を行うポート番号を設定してください。デフォルトでは40608ポートを使用する設定です。クライアントからブローカーまでのネットワーク機器などに対して、ここで指定したポートを開放してください。<frontend>tcp://*:40608</frontend>
- <backend>
Web Application Server との通信を行うポート番号を設定してください。デフォルトでは40609ポートを使用する設定です。ブローカーからサーバまでのネットワーク機器などに対して、ここで指定したポートを開放してください。<backend>tcp://*:40609</backend>コラム
IM-Notice MQブローカー設定ファイルのその他の項目は IM-Notice ブローカー設定ファイルと同様です。IM-Notice ブローカー設定ファイルについては IM-Notice MQ設定ファイルの編集 を参照してください。
11.6.3.2.4. ブローカーサービスの実行¶
フォアグラウンドで動作させる場合(例)
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を使用します。
11.6.4.1. P12証明書ファイルの取得¶
11.6.4.2. Amazon SNSの設定¶
Amazon SNSの設定を行います。
Amazon SNS にサインインしてください。 リージョンを選択してください。 サービスを選択してください。 「Mobile」-「プッシュ通知」から「プラットフォームアプリケーションの作成」をクリックしてください。 フォームに以下の内容を入力し、「プラットフォームアプリケーションの作成」をクリックしてください。 アプリケーションが追加されました。「ARN」を確認します。設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
11.6.4.3. ポリシーの作成¶
AWS Identity and Access Management (IAM) にサインインしてください。 「ポリシー」を選択し、「ポリシーを作成」を押下してください。 「サービスを選択」にて「SNS」を検索し、選択してください。 サービスを選択すると表示される「アクション許可」にて以下4つのアクションをそれぞれ検索し、チェックを入れてください。 選択したサービス、および、アクションが表示されていることを確認してください。その後、「リソース」にて「特定」を選択し、「このアカウント内のいずれか」にチェックを入れ、「次へ」を押下してください。 「ポリシー名」に任意のポリシー名を入力し、「ポリシーの作成」を押下してください。 ポリシーが作成されました。作成されたポリシー名は アクセスキーとシークレットキーの作成 や ロールの作成 に使用しますので、控えておいてください。
11.6.4.4. アクセスキーとシークレットキーの作成¶
Amazon SNSへの接続に必要な、アクセスキーとシークレットキーの作成を行います。
コラム
アクセスキーとシークレットキー、または、ロールのうち、いずれか一方の作成が必要です。なお、ロールは、お客様環境がEC2インスタンス上で稼働している場合のみ利用できます。
AWS Identity and Access Management (IAM) にサインインしてください。 「ユーザー」を選択し、「ユーザーの作成」を押下してください。 「ユーザー名」に任意のユーザー名を入力し、「次へ」を押下してください。 「許可のオプション」にて「ポリシーを直接アタッチする」を選択してください。その後、 ポリシーの作成 で作成したポリシー名にチェックを入れ、「次へ」を押下してください。 「ユーザーの作成」を押下してください。 作成したユーザー名を押下してください。 「セキュリティ認証情報」タブを押下し、「アクセスキー」にて「アクセスキーを作成」を押下してください。 「コマンドラインインターフェイス (CLI)」を選択し、「上記のレコメンデーションを理解し、アクセスキーを作成します。」にチェックを入れ、「次へ」を押下してください。 「アクセスキーを作成」を押下してください。 「アクセスキーを取得」画面でアクセスキーとシークレットアクセスキーを控えるか、「.csv ファイルをダウンロード」を押下してください。その後、「完了」を押下してください。
11.6.4.5. ロールの作成¶
Amazon SNSへの接続に必要な、IAMロールの作成を行います。
コラム
アクセスキーとシークレットキー、または、ロールのうち、いずれか一方の作成が必要です。なお、ロールは、お客様環境がEC2インスタンス上で稼働している場合のみ利用できます。
AWS Identity and Access Management (IAM) にサインインしてください。 「ロール」を選択し、「ロールを作成」を押下してください。 「信頼されたエンティティタイプ」にて「カスタム信頼ポリシー」を選択し、「カスタム信頼ポリシー」に以下を入力してください。${AWSアカウントID} と ${EC2インスタンスにアタッチされたロール名} の箇所は、お客様の環境に合わせて変更してください。その後、「次へ」を押下してください。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::${AWSアカウントID}:role/${EC2インスタンスにアタッチされたロール名}" }, "Action": "sts:AssumeRole" } ] } 「許可ポリシー」にて、 ポリシーの作成 で作成したポリシー名にチェックを入れ、「次へ」を押下してください。 「ロール名」に任意のロール名を入力し、「ロールを作成」を押下してください。 ロールが作成されました。作成されたロールのARNは設定ファイルの編集に使用しますので、控えておいてください。
11.6.4.6. IM-Notice Mobile設定ファイルの編集¶
<proxy>
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>
<asns>のname属性に任意の名前を設定してください。
<asns name="asns-apns"> .... </asns>
<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」です。
<platform-application-arn>
- Amazon SNSの設定 で確認したApplication ARNを設定してください。
<platform-application-arn>arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:app/APNS/IM-Notice_APNS</platform-application-arn>
<access-key>
- 通知にアクセスキーとシークレットキーを使う場合、 アクセスキーとシークレットキーの作成 で作成したアクセスキーを設定してください。
<secret-key>
- 通知にアクセスキーとシークレットキーを使う場合、 アクセスキーとシークレットキーの作成 で作成したシークレットキーを設定してください。
<iam-role-arn>
- 通知にロールを使う場合、 ロールの作成 で作成したロールのARNを設定してください。
<push type=”ios” />
engine属性に、<asns>のname属性に設定した名前を指定してください。
<push type="ios" engine="asns-apns" />
11.6.4.7. P12証明書ファイルの更新¶
P12証明書ファイル(IM-Notice Push Notifications Production.p12)の有効期限が切れてしまった、または新しいP12証明書ファイルが公開された場合、更新を行います。 有効期限が過ぎてしまったP12証明書ファイルを利用した場合、通知が届かなくなるため、有効期限が切れる前に新しいP12証明書ファイルに更新してください。
弊社サイトのダウンロード ライブラリから最新のP12証明書ファイルを取得してください。
Amazon SNSにサインインしてください。 リージョンを選択してください。 サービスを選択してください。 「Mobile」ー「プッシュ通知」からアプリケーションを選択し、「編集」をクリックします。 フォームに以下の内容を入力し、「変更の保存」をクリックしてください。
11.6.5. モバイル通知機能(Android版)¶
モバイル通知機能を使用するための設定を行います。 Androidへの通知を行うには、以下の2種類の構成が利用できます。
FCM を使用する場合の設定方法は、 FCMを使用する場合 を参照してください。 FCM+Amazon SNSを使用する場合の設定方法は、 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の設定を行います。
Firebase Console にログインしてください。 プロジェクトを作成します。 フォームに以下の内容を入力し、「続行」をクリックしてください。 「Googleアナリティクス」を無効にし、「プロジェクトの作成」をクリックしてください。(Googleアナリティクスを利用する場合は有効にして必要な設定をおこなってください。) プロジェクトの準備ができたら、「続行」をクリックしてください。 作成したプロジェクトをクリックしてください。 プロジェクトへAndroidアプリを追加します。「Androidアプリ追加」アイコンをクリックしてください。 フォームに以下の内容を入力し、「アプリを登録」をクリックしてください。 「次へ」をクリックし、4まで進めてください。 「コンソールに進む」をクリックしてください。 ウェブAPIキーを発行するために、Androidアプリにプロダクトを追加します。「Authentication」をクリックしてください。 「始める」をクリックしてください。 「Sign-in method」タブを選択し、ログイン プロバイダ「メール/パスワード」をクリックしてください。 「有効にする」をONに変更し、「保存」をクリックしてください。 サービスアカウントの秘密鍵を生成します。プロジェクト概要の歯車アイコンをクリックし、「プロジェクトを設定」をクリックしてください。 「サービスアカウント」タブを選択し、「新しい秘密鍵を生成」をクリックしてください。 表示されたメッセージを確認し、「キー生成」をクリックしてください。秘密鍵が生成されると、JSON 形式のサービスアカウントの認証情報ファイルがダウンロードされます。設定ファイルを編集する際に、設定ファイルと同じディレクトリに配置する必要がありますので、保持しておいてください。 全般タブを選択し、プロジェクトのプロジェクトID、ウェブAPIキーを確認します。設定ファイルを編集する際に必要な文字列ですので、控えておいてください。 マイアプリ - AndroidアプリのアプリIDを確認します。設定ファイルを編集する際に必要な文字列ですので、控えておいてください。 クラウドメッセージングタブへ移動し、送信者IDを確認します。設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
11.6.5.1.2. IM-Notice Mobile設定ファイルの編集¶
<proxy>
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>
<fcm>のname属性に任意の名前を設定してください。
<fcm name="fcm"> .... </fcm>
<url>
- https://fcm.googleapis.com/v1/projects/%REPLACE_WITH_PROJECT_ID%/messages:send を指定してください。ただし、%REPLACE_WITH_PROJECT_ID% はFirebaseプロジェクトのプロジェクトIDに置き換えて指定してください。
<project-id>
- FirebaseプロジェクトのプロジェクトIDを設定してください。
<application-id>
- AndroidアプリのアプリIDを設定してください。
<api-key>
- FirebaseプロジェクトのウェブAPIキーを設定してください。
<credentials-file>
- ダウンロードした JSON 形式のサービスアカウントの認証情報ファイルを im-notice-mobile-config.xml と同じディレクトリに配置してください。credentials-file には、認証情報ファイルのファイル名を設定してください。
<sender-id>
- クラウドメッセージングの送信者IDを設定してください。
コラム
各項目の確認方法は、 FCMの設定 を参照してください。
<push type=”android” />
- engine属性に、<fcm>のname属性に設定した名前を指定してください。
<push type="android" engine="fcm" />
<max-push-subject-length>
- Push通知受信時に表示するタイトルの最大文字数を設定してください。
<max-push-subject-length>30</max-push-subject-length>
<max-push-body-length>
- Push通知受信時に表示する本文の最長文字数を設定してください。
<max-push-body-length>70</max-push-body-length>
11.6.5.1.3. サービスアカウントの認証情報ファイルの更新¶
サービスアカウントの新しい秘密鍵を作成します。Firebase Console にログインしてください。 対象のプロジェクトをクリックしてください。 プロジェクト概要の歯車アイコンをクリックし、「プロジェクトを設定」をクリックしてください。 「サービスアカウント」タブを選択し、「サービスアカウント権限の管理」をクリックしてください。 「firebase-adminsdk」という名前のアカウントの行の縦三点リーダー「⋮」をクリックし、「鍵を管理」をクリックしてください。 「鍵を追加」をクリックし、「新しい鍵を作成」をクリックしてください。 「作成」をクリックしてください。秘密鍵が生成されると、JSON 形式のサービスアカウントの認証情報ファイルがダウンロードされます。このファイルは、intra-mart Accel Platform にアップロードする必要がありますので、保持しておいてください。 サービスアカウントの認証情報ファイルを intra-mart Accel Platform にアップロードすることで、認証情報を更新できます。intra-mart Accel Platform にシステム管理者でログインしてください。 「システム管理」→「モバイル通知」→「Firebase サービスアカウント認証情報」をクリックしてください。 認証情報ファイルアップロードをクリックしてください。 サービスアカウントの認証情報ファイルを選択し、更新をクリックしてください。 更新確認ダイアログで決定をクリックすると更新できます。
11.6.5.1.4. FCM HTTP v1 API への移行¶
Firebase Console にログインしてください。 対象のプロジェクトをクリックしてください。 プロジェクト概要の歯車アイコンをクリックし、「プロジェクトを設定」をクリックしてください。 「Cloud Messaging」タブをクリックし、Firebase Cloud Messaging API(V1)が有効であることを確認してください。無効だった場合は有効にしてください。 「サービスアカウント」タブを選択し、「新しい秘密鍵を生成」をクリックしてください。 表示されたメッセージを確認し、「キー生成」をクリックしてください。秘密鍵が生成されると、JSON 形式のサービスアカウントの認証情報ファイルがダウンロードされます。設定ファイルを編集する際に、設定ファイルと同じディレクトリに配置する必要がありますので、保持しておいてください。 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> WAR ファイルを出力して再デプロイすることで、FCM HTTP v1 API への移行が完了します。WAR ファイルの出力に関しては「WARファイルの出力」を、再デプロイに関しては「WARファイルの再デプロイ」を参照してください。
11.6.5.2. FCM+Amazon SNSを使用する場合¶
FCMとAmazon SNSを使用しAndroidへの通知を行う場合、以下の設定を行ってください。
11.6.5.2.2. Amazon SNS の設定¶
Amazon SNSの設定を行います。
Amazon SNS にサインインしてください。 リージョンを選択してください。 サービスを選択してください。 「Mobile」-「プッシュ通知」から「プラットフォームアプリケーションの作成」をクリックしてください。 フォームに以下の内容を入力し、「プラットフォームアプリケーションの作成」をクリックしてください。
項目 説明 アプリケーション名 任意の名前を入力します。 プッシュ通知プラットフォーム 「Firebase Cloud Messaging(FCM)」を選択します。 認証方法 「トークン (推奨)」を選択します。 Service Json FCM の設定 でダウンロードした JSON 形式のサービスアカウントの認証情報ファイルを選択します。 アプリケーションが追加されました。「ARN」を確認します。設定ファイルを編集する際に必要な文字列ですので、控えておいてください。
11.6.5.2.3. ポリシーの作成¶
コラム
ポリシーの作成方法は、 ポリシーの作成 を参照してください。
11.6.5.2.4. アクセスキーとシークレットキーの作成¶
コラム
アクセスキーとシークレットキーの作成方法は、 アクセスキーとシークレットキーの作成 を参照してください。
11.6.5.2.6. IM-Notice Mobile設定ファイルの編集¶
<proxy>
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>
<asns>のname属性に任意の名前を設定してください。
<asns name="asns-fcm"> .... </asns>
<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」です。
<platform-application-arn>
- Application ARNを設定してください。
コラム
Application ARNの確認方法は、 Amazon SNS の設定 を参照してください。
<access-key>
- 通知にアクセスキーとシークレットキーを使う場合、 アクセスキーとシークレットキーの作成 で作成したアクセスキーを設定してください。
<secret-key>
- 通知にアクセスキーとシークレットキーを使う場合、 アクセスキーとシークレットキーの作成 で作成したシークレットキーを設定してください。
<iam-role-arn>
- 通知にロールを使う場合、 ロールの作成 で作成したロールのARNを設定してください。
<fcm-project-id>
- FirebaseプロジェクトのプロジェクトIDを設定してください。
<fcm-application-id>
- AndroidアプリのアプリIDを設定してください。
<fcm-api-key>
- FirebaseプロジェクトのウェブAPIキーを設定してください。
<fcm-sender-id>
- Firebase クラウドメッセージングの送信者IDを設定してください。
コラム
プロジェクトID等Firebase設定情報の確認方法は、 FCMの設定 を参照してください。
<push type=”android” />
engine属性に、<asns>のname属性に設定した名前を指定してください。
<push type="android" engine="asns-fcm" />
<max-push-subject-length>
- Push通知受信時に表示するタイトルの最大文字数を設定してください。
<max-push-subject-length>30</max-push-subject-length>
<max-push-body-length>
- Push通知受信時に表示する本文の最長文字数を設定してください。
<max-push-body-length>70</max-push-body-length>