プッシュ通知メッセージのコンテンツを構成する

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:7分
  • プッシュ通知メッセージのコンテンツを構成し、通知を受信するモバイル アプリケーションを選択します。重要なアラート通知を構成し、メッセージの外観をカスタマイズし、ユーザーが通知をタップしたときに使用するディープリンクを決定できます。

    始める前に

    プッシュ通知メッセージのコンテンツを構成するには、モバイルディープリンクジェネレーターを使用してディープリンクを生成する必要があります。詳細については、「モバイル向けディープリンク」を参照してください。

    必要なロール:admin

    このタスクについて

    [プッシュメッセージコンテンツ] フォームに次のように入力します。

    • 通知に名前を付けます。
    • 通知の送信先のモバイルアプリを選択します。
    • オプションで、通知メッセージの外観をカスタマイズします。
    • ユーザーが通知をタップしたときに使用するディープリンクを決定します。
    プッシュ通知メッセージのコンテンツは、最大 3 つの追加フィールドをサポートしています。これらのフィールドをオプションのテキストスロットとして使用すると、ソースレコードのフィールドをそのスロットに表示できます。
    注:
    テキストスロットはモバイルアプリ上に固定されているため、場所やサイズを変更することはできません。各スロットは、プッシュ通知メッセージのコンテンツスクリプトの JSON オブジェクト内で StatusIdentifier、および Description にマッピングされます。

    追加のフィールドでは、モバイル UI のスタイルも使用できます。スタイリングの詳細については、「モバイル UI のスタイル」を参照してください。

    手順

    1. 次のように移動する。 All (すべて) > システム通知 > プッシュ > プッシュメッセージコンテンツ.
    2. [New (新規)] を選択します。
    3. [プッシュ通知メッセージコンテンツ] フォームの各フィールドに入力します。
      表 : 1. [プッシュメッセージコンテンツ] フォーム
      フィールド 説明
      名前 このレコードの文字列値。
      注:
      この名前は通知には表示されず、構成中に使用する参照にすぎません。
      プッシュアプリ 通知を送信するモバイルアプリの参照です。
      • モバイルエージェント には ServiceNow モバイル アプリケーションを使用します。
      • Now Mobile アプリ には ServiceNow Request アプリケーションを使用します。
      プッシュ メッセージ生成 通知リンクを含むスクリプトブロックです。スクリプトブロックでは、JSON オブジェクトはリンクを返す必要があるため、Link キーが存在している必要があります。そのキーには、モバイルディープリンクジェネレーターによって生成された、対応するディープリンク値が必要です。
      この例では、入力されたフォームと、適切な Link キーと対応するディープリンク値を持つ JSON オブジェクトを示します。すべてのフィールドが入力された [プッシュメッセージコンテンツ] フォームと、Link キーで示されるディープリンクの例
    4. オプション: テキストスロットなどの追加フィールドを通知コンテンツに追加します。

      [プッシュメッセージ生成] スクリプトブロックで、各フィールドのレイアウトフィールドオブジェクトを作成します。

      1. 通知レイアウトオブジェクトをインスタンス化します。
        var layoutGen = new global.NotificationLayoutFieldGenerator();
      2. 通知レイアウトスクリプトを使用し、グローバルアプリケーションスコープを含めてレイアウトフィールドを生成します。
        スクリプトインクルードの詳細については、「 スクリプトインクルード」を参照してください。
        注:
        通知レイアウトジェネレーターのスクリプトインクルードは、変更しないでください。
      3. レイアウトフィールドを作成します。
        各レイアウトフィールドには、TableSys_Id、および Column が必要です。
        注:
        TableSys_Id の値は、current.getTableName()current.sys_id を使用して現在のレコードから直接取得する必要があります。目的のテーブルの Column 値が存在し、ディクショナリーの列名と正確に一致する必要があります。
        var text_01 = layoutGen.layoutField(current.getTableName(), current.sys_id, "priority");
      4. レイアウトフィールドを元の JSON オブジェクトに、別のオブジェクトとして渡します。

        モバイルアプリケーションは、必要な追加フィールドを含むオブジェクトであるオプションの Layout キーをリッスンします。Layout オブジェクトで、各追加フィールドを StatusIdentifier、または Description のキーに関連付けます。次の例を参照として使用できます。

        (function buildJSON( /*GlideRecord*/ current, /*String*/ message, /*Object*/ attributes) { 
        
            var layoutGen = new global.NotificationLayoutFieldGenerator(); 
            var text_01 = layoutGen.layoutField(current.getTableName(), current.sys_id, "priority"); 
            var text_02 = layoutGen.layoutField(current.getTableName(), current.sys_id, "state"); 
            var text_03 = layoutGen.layoutField(current.getTableName(), current.sys_id, "short_description"); 
        
            var deepLinkGenerator = new global.MobileDeepLinkGenerator("Request"); 
            var link = deepLinkGenerator.getFormScreenLink("b71040b1533a33007bc2ddeeff7b1221", current.getTableName(), current.getValue("sys_id")); 
        
            var json = { 
        
                "Link": link, 
        
                "Layout": { 
        
                    "Status": text_01, 
        
                    "Identifier": text_02, 
        
                    "Description": text_03 
        
                } 
        
            }; 
        
            return json;
        
        })(current, message, attributes);
    5. オプション: カスタマイズされた通知タイトルを追加します。
      カスタマイズした通知タイトルを追加しない場合、通知にはデフォルトのモバイルアプリ名が表示されます。
      モバイルアプリ名を表示する標準の通知メッセージタイトルと、通知を説明するカスタムタイトルの違いを示す画像。

      プッシュメッセージ生成スクリプトブロックで、json セクションに次のコード例を追加します。

      var json= {};
      var msg_title  = "System updates!";
      json= {
        "android_title" : msg_title,
        "aps": {
          "alert": {
            "title": msg_title,
          }
        }
      
      サンプル JSON コードの要素は次のとおりです。
      • System updates! というmsg_title変数は、iOSAndroidの両方に適用される通知タイトル名です。
      • ノードjson["android_title"]Androidの変数です。
      • ノード json["aps"]["alert"]["title"]iOSの変数です。
    6. 通知をトリガーできるように、 Android デバイスのウェイクアップをアクティブ化する次のコードを追加します。

      ユーザーは iOS デバイスと Android デバイスの両方を使用するため、このコードを追加する必要があります。コード内の JSON エントリは、スクリプティングから返されたディクショナリ名の値です。

      AndroidsncGoogleKeysでは、メッセージ配信を制御する特定のフィールドがサポートされています。詳細については、「 Firebase Cloud Messaging HTTP プロトコル」を参照してください。
      注:
      priorityパラメーターは、デバイスがスリープモードの場合、Androidデバイスをウェイクアップするためにに設定されます。このパラメーターは、重要なアラートをエンドユーザーに配信するのに役立ちます。
      json["sncGoogleKeys"] = {
          "priority": "high",
          "android": {
            "priority": "high"
          }
      }
      
    7. [Update (更新)] を選択します。

    タスクの結果

    ディープリンクを含むプッシュ通知メッセージのコンテンツレコードを作成しました。

    次のタスク

    プッシュ通知メッセージのコンテンツを構成した後、それをプッシュ通知メッセージレコードとペアリングする必要があります。プッシュ通知メッセージの構成の詳細については、「プッシュ通知メッセージを構成する」を参照してください。