通知クライアント

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

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

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

注意

次のコード例の client 変数は IMClient インスタンスを意味します。Web SDK を使用する場合、変数名は自由に選択できますが、ドキュメントの例では client という名前が使われています。

電子メール テンプレート

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

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

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

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

名前を指定して電子メール テンプレートを取得する場合、たとえば、ユーザーがパスワードを忘れた場合に送信する電子メールのテンプレートを取得するには次のように指定します。

RequestResponse
var template = await client.Notifications.GetMailTemplateEntityAsync("ForgotPassword");

ID を指定して同様に電子メール テンプレートを取得することもできます。

RequestResponse
var entity = await client.Entities.GetAsync(id);
// create an instance of a typed IMailTemplateEntity
IMailTemplateEntity template = client.TypedEntityFactory.FromEntity<IMailTemplateEntity>(entity);

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

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

RequestResponse
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: すべてのユーザーに送信します。

以前に作成したテンプレートを使用して、ブロードキャストで電子メールを送信できます。

RequestResponse
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 に送信できます。

RequestResponse
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 が動作するには、設定で EnableConfirmationMailtrue に設定する必要があります。

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

RequestResponse
await client.Notifications.SendConfirmationEmailAsync("DemoUser");

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

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、