1. 通知

通知クライアント

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

この SDK には、通知を管理および送信する通知クライアントが用意されています。

注意

次のコード例の client 変数は ContentHubClient インスタンスを意味します。JavaScript SDK を使用する際、変数名は自由に選択できますが、ドキュメントの例では client という名前が使われています。id 引数では入力として 64 ビットの数値を使用します。

電子メール テンプレート

電子メール テンプレート エンティティは、電子メールの送信に使用するテンプレートを収めています。これらの変数は実行時に解決できます。

IMailTemplateIEntity のサブタイプです。このサブタイプは、M.Mailing.Template エンティティ定義でメンバーに JavaScript のプロパティとメソッドを提供します。

このクライアントは、これらの電子メール テンプレートを取得する追加のゲッターを提供します。エンティティ クライアントでは、これらのゲッターを使用できません。このゲッターを使用すると、名前を指定して電子メール テンプレートをフェッチできますが、IEntity に対する各操作は IMailTemplate に適用されます。IMailTemplate オブジェクトの保存と削除は、引き続きエンティティ クライアントから実行されます。

電子メール テンプレートの取得

ID を指定して電子メール テンプレートを取得するには、次のコードを参照してください。

import { IMailTemplate } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/notifications/mail-template";

var template = await client.entities.getAsync(id) as IMailTemplate;

電子メール テンプレートの作成

簡単な Hello world テンプレートを次に示します。

import CultureInfo from "@sitecore/sc-contenthub-webclient-sdk/dist/culture-info";
import { IMailTemplate } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/notifications/mail-template";

var enUS: CultureInfo = "en-US";

var template = await client.entityFactory.createAsync("M.Mailing.Template") as IMailTemplate;
template.name = "Hello world template";
template.setSubject(enUS, "Hello there!");
template.setBody(enUS, "Hello {{Username}}!");

await client.entities.saveAsync(template);

電子メール通知の送信

ユーザー名またはユーザー ID を指定するか、ブロードキャストによってユーザーに電子メールを送信できます。それぞれの方法に応じて、SendEmailNotificationAsync に対する次の 3 種類のオーバーロードがあります。それそれ次の入力が受け入れられます。

  • MailRequestById: ユーザーを ID で指定します。
  • MailRequestByUsername: ユーザーをユーザー名で指定します。
  • MailRequestBroadcast: すべてのユーザーに送信します。

この作成したテンプレートを使用して、ブロードキャストで電子メールを送信するとします。

import { MailRequestBroadcast } from "@sitecore/sc-contenthub-webclient-sdk/dist/models/notifications/mail-request-broadcast";

var request = new MailRequestBroadcast();
request.mailTemplateName = "Hello world template";
request.variables["Username"] = "world";

await client.notifications.sendEmailNotificationAsync(request);

"Hello world!" と記載されたメールがすべてのユーザーに送信されます。

リアルタイム通知の送信

ユーザー名またはユーザー ID を指定するか、ブロードキャストによってユーザーにリアルタイム通知を送信できます。それぞれの方法に応じて、SendRealTimeNotifcationAsync に対する次の 3 種類のオーバーロードがあります。それそれ次の入力が受け入れられます。

  • RealtimeRequestById: ユーザーを ID で指定します。
  • RealtimeRequestByUsername: ユーザーをユーザー名で指定します。
  • RealtimeRequestBroadcast: すべてのユーザーに送信します。

DemoUser にリアルタイム通知を送信するとします。

import { RealtimeRequestByUsername } from "@sitecore/sc-contenthub-webclient-sdk/dist/models/notifications/realtime-request-by-username";

var request = new RealtimeRequestByUsername();
request.recipients.push("DemoUser");
request.setBody("Your description");
request.setIcon("https://example.com/image.png");

await client.notifications.sendRealTimeNotificationAsync(request);

ユーザーが通知をクリックすると、リンクが開きます。

このリアルタイム要求インターフェイスは、標準の通知 API である https://developer.mozilla.org/en-US/docs/Web/API/notification に基づいて作成されています。この API では、通知情報をすべて収めた options オブジェクトを使用します。このオブジェクトは IRealtimeRequest.Options プロパティから直接渡されます。通知の本文やアイコンといった、このオプション オブジェクトの設定に効果的なヘルパー メソッドがいくつか用意されています。

アカウント確認メールの送信

重要

SendConfirmationEmailAsync が動作するには、設定で EnableConfirmationMailtrue に設定する必要があります。

ID またはユーザー名を使用して、確認のための電子メールをユーザーに送信できます。

await client.notifications.sendConfirmationEmailAsync(["DemoUser"]);

指定したユーザーのアカウントをアクティブ化する安全なリンクを記述した電子メールが、そのユーザーに送信されます。

この記事を改善するための提案がある場合は、 お知らせください!