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 プロパティから直接渡されます。 通知の本文やアイコンといった、このオプション オブジェクトの設定に効果的なヘルパー メソッドがいくつか用意されています。

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

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

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

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

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