通知クライアント
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
この SDK には、通知を管理および送信する通知クライアントが用意されています。
次のコード例の client
変数は IMClient
インスタンスを意味します。Web SDK を使用する場合、変数名は自由に選択できますが、ドキュメントの例では client
という名前が使われています。
電子メール テンプレート
電子メール テンプレート エンティティは、電子メールの送信に使用するテンプレートを収めています。これらの変数は実行時に解決できます。
IMailTemplateEntity
は IEntity
のサブタイプです。このサブタイプは、M.Mailing.Template
エンティティ定義でメンバーに C# のプロパティとメソッドを提供します。
このクライアントは、これらの電子メール テンプレートを取得する追加のゲッターを提供します。エンティティ クライアントでは、これらのゲッターを使用できません。このゲッターを使用すると、名前を指定して電子メール テンプレートをフェッチできますが、IEntity
に対する各操作は IMailTemplateEntity
に適用されます。IMailTemplateEntity
オブジェクトの保存と削除は、引き続きエンティティ クライアントから実行されます。
電子メール テンプレートの取得
名前を指定して電子メール テンプレートを取得する場合、たとえば、ユーザーがパスワードを忘れた場合に送信する電子メールのテンプレートを取得するには次のように指定します。
var template = await client.Notifications.GetMailTemplateEntityAsync("ForgotPassword");
ID を指定して同様に電子メール テンプレートを取得することもできます。
var entity = await client.Entities.GetAsync(id);
// create an instance of a typed IMailTemplateEntity
IMailTemplateEntity template = client.TypedEntityFactory.FromEntity<IMailTemplateEntity>(entity);
電子メール テンプレートの作成
簡単な hello world テンプレートを次に示します。
CultureInfo enUs = CultureInfo.GetCultureInfo("en-US");
var entity = await client.EntityFactory.CreateAsync(Constants.MailTemplate.DefinitionName);
var template = client.TypedEntityFactory.FromEntity<IMailTemplateEntity>(entity);
template.Name = "Hello world template";
template.Subject[enUs] = "Hello there!";
template.Body[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 を指定するか、ブロードキャストによってユーザーにリアルタイム通知を送信できます。それぞれの方法に応じて、SendRealTimeNotificationAsync
に対する次の 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
プロパティから直接渡されます。通知の本文やアイコンといった、このオプション オブジェクトの設定に効果的なヘルパー メソッドがいくつか用意されています。
確認メールの送信
SendConfirmationEmailAsync
が動作するには、設定で EnableConfirmationMail
を true
に設定する必要があります。
ID またはユーザー名を使用して、確認のための電子メールをユーザーに送信できます。
await client.Notifications.SendConfirmationEmailAsync("DemoUser");
指定したユーザーのアカウントをアクティブ化する安全なリンクを記述した電子メールが、そのユーザーに送信されます。