通知クライアント
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
この SDK には、通知を管理および送信する通知クライアントが用意されています。
[!注] 次のコード例の
client
変数はIMClient
インスタンスを意味します。スクリプト SDK を使用する場合、このインスタンスは自動的に作成され、
MClient
という名前が付けられます。Web SDK を使用する場合、変数名は自由に選択できますが、ドキュメントの例では
client
という名前が使われています。
電子メール テンプレート
電子メール テンプレート エンティティは、電子メールの送信に使用するテンプレートを収めています。 これらの変数は実行時に解決できます。
IMailTemplate
は IEntity
のサブタイプです。 このサブタイプは、M.Mailing.Template
エンティティ定義でメンバーに C# のプロパティとメソッドを提供します。
このクライアントは、これらの電子メール テンプレートを取得する追加のゲッターを提供します。エンティティ クライアントでは、これらのゲッターを使用できません。 このゲッターを使用すると、名前を指定して電子メール テンプレートをフェッチできますが、IEntity
に対する各操作は IMailTemplate
に適用されます。 IMailTemplate
オブジェクトの保存と削除は、引き続きエンティティ クライアントから実行されます。
電子メール テンプレートの取得
名前を指定して電子メール テンプレートを取得する場合、たとえば、ユーザーがパスワードを忘れた場合に送信する電子メールのテンプレートを取得するには次のように指定します。
IMailTemplate template = await client.Notifications.GetMailTemplateAsync("ForgotPassword");
ID を指定して同様に電子メール テンプレートを取得することもできます。
IMailTemplate template = await client.Entities.GetAsync(id) as IMailTemplate;
電子メール テンプレートの作成
簡単な hello world テンプレートを次に示します。
CultureInfo enUs = CultureInfo.GetCultureInfo("en-US");
IMailTemplate template = await client.EntityFactory.CreateAsync(Constants.MailTemplate.DefinitionName) as IMailTemplate;
template.Name = "Hello world template";
template.SetSubject(enUs, "Hello there!");
template.SetBody(enUs, "Hello {{Username}}!");
var templateVariable = new TemplateVariable
{
Name = "Username",
VariableType = TemplateVariableType.String
};
template.SetTemplateVariables(new[] { templateVariable });
await client.Entities.SaveAsync(template);
電子メール通知の送信
ユーザー名またはユーザー ID を指定するか、ブロードキャストによってユーザーに電子メールを送信できます。 それぞれの方法に応じて、SendEmailNotificationAsync
に対する次の 3 種類のオーバーロードがあります。 それそれ次の入力が受け入れられます。
MailRequestById
: ユーザーを ID で指定します。MailRequestByUsername
: ユーザーをユーザー名で指定します。MailRequestBroadcast
: すべてのユーザーに送信します。
この作成したテンプレートを使用して、ブロードキャストで電子メールを送信するとします。
var request = new MailRequestBroadcast
{
MailTemplateName = "Hello world template"
};
request.Variables.Add("Username", "world");
await client.Notifications.SendEmailNotificationAsync(request);
"Hello world!" を記述した電子メールがすべてのユーザーに送信されます。
リアルタイム通知の送信
ユーザー名またはユーザー ID を指定するか、ブロードキャストによってユーザーにリアルタイム通知を送信できます。 それぞれの方法に応じて、SendRealTimeNotifcationAsync
に対する次の 3 種類のオーバーロードがあります。 それそれ次の入力が受け入れられます。
RealtimeRequestById
: ユーザーを ID で指定します。RealtimeRequestByUsername
: ユーザーをユーザー名で指定します。-
RealtimeRequestBroadcast
: すべてのユーザーに送信します。 -
DemoUser* にリアルタイム通知を送信するとします。
var request = new RealtimeRequestByUsername()
{
Title = "Your notification title",
Link = new System.Uri("https://example.com")
};
request.Recipients.Add("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");
指定したユーザーのアカウントをアクティブ化する安全なリンクを記述した電子メールが、そのユーザーに送信されます。