CustomNotification クラス
名前空間
使用方法
- デフォルトのコンストラクターを使用してインスタンスを作成し、さまざまな setter メソッドを使用して通知属性を設定します。
- インスタンスを作成し、同時にパラメーター化されたコンストラクターを使用して通知パラメーターを設定します。
通知対象
通知対象は、受信側のクライアントアプリケーションによってユーザーが通知に応答するときに適切なレコードまたはページに移動するために使用されます。たとえば、レコードが更新されたとユーザーが通知された場合、通知に応答すると関連レコードが開く場合があります。
通知の対象を指定する必要があります。対象は targetID 属性または targetPageRef 属性を使用して指定できます。どちらの属性も必須ではありませんが、両方の属性が省略された場合、send() で例外が発生します。通知に適した対象が存在しない場合は、targetID を 000000000000000AAA などのダミーの値に設定します。ダミーの値は、例外を防ぐだけでなく、クライアントアプリケーションで通知に応答したときの自動的な移動も防ぎます。
実行コンテキストおよび通知の権限
デフォルトでは、Apex コードはシステムモードで実行され、CustomNotification を使用して通知を送信するためにユーザー権限は必要ありません。ただし、たとえば開発者コンソールで匿名 Apex を実行するなど、Apex コードがユーザーコンテキストで実行されている場合、「カスタム通知を送信」ユーザー権限がチェックされ、必要な権限がない場合は send() が失敗します。
例
次の例の Apex クラスでは、カスタム通知を受信者リストに送信するための静的メソッドが提供されます。Apex からカスタム通知を送信するには、トリガーやフローなど、任意の場所からこのメソッドをコールします。
1public without sharing class CustomNotificationFromApex {
2
3 public static void notifyUsers(Set<String> recipientsIds, String targetId) {
4
5 // Get the Id for our custom notification type
6 CustomNotificationType notificationType =
7 [SELECT Id, DeveloperName
8 FROM CustomNotificationType
9 WHERE DeveloperName='Custom_Notification'];
10
11 // Create a new custom notification
12 Messaging.CustomNotification notification = new Messaging.CustomNotification();
13
14 // Set the contents for the notification
15 notification.setTitle('Apex Custom Notification');
16 notification.setBody('The notifications are coming from INSIDE the Apex!');
17
18 // Set the notification type and target
19 notification.setNotificationTypeId(notificationType.Id);
20 notification.setTargetId(targetId);
21
22 // Actually send the notification
23 try {
24 notification.send(recipientsIds);
25 }
26 catch (Exception e) {
27 System.debug('Problem sending notification: ' + e.getMessage());
28 }
29 }
30}CustomNotification のコンストラクター
CustomNotification のコンストラクターは次のとおりです。
CustomNotification(typeId, sender, title, body, targetId, targetPageRef)
署名
public CustomNotification(String typeId, String sender, String title, String body, String targetId, String targetPageRef)
パラメーター
- typeId
- 型: String
- 通知に使用されているカスタム通知種別の ID。
- sender
- 型: String
- 通知の送信者のユーザー ID。
- title
- 型: String
- 通知のタイトル。最大文字数は 250 文字です。
- body
- 型: String
- 通知の本文。最大文字数は 750 文字です。
- targetId
- 型: String
- 通知の対象レコードのレコード ID。
targetID または targetPageRef を指定する必要があります。「CustomNotification クラス」の「使用法」を参照してください。
- targetPageRef
- 型: String
- 通知のナビゲーション対象の PageReference。JSON を使用して対象を指定する方法については、「pageReference の型」を参照してください。
targetID または targetPageRef を指定する必要があります。「CustomNotification クラス」の「使用法」を参照してください。
使用方法
配信チャネルやアプリケーション、および Connect API 通知パラメーターの設定方法によっては、クライアントに表示される通知タイトルや本文が切り捨てられることがあります。trimMessages クエリパラメーターについての詳細は、「通知」を参照してください。
CustomNotification のメソッド
CustomNotification のメソッドは次のとおりです。
send(users)
署名
public void send(Set<String> users)
パラメーター
- users
- 型: Set<String>
- 必須。受信者 ID のセット。各受信者 ID は、通知の送信先となる受信者または受信者種別に対応します。有効な受信者または受信者種別は、次のとおりです。
- UserId — 通知はこのユーザーに送信されます。ただし、このユーザーが有効であることが条件です。
- AccountId — 通知はこの取引先の取引先チームのメンバーであるすべての有効なユーザーに送信されます。
- OpportunityId — 通知はこの商談の商談チームのメンバーであるすべての有効なユーザーに送信されます。
- GroupId — 通知はこのグループのメンバーであるすべての有効なユーザーに送信されます。
- QueueId — 通知はこのキューのメンバーであるすべての有効なユーザーに送信されます。
戻り値
型: void
例
「CustomNotification クラス」の「例」を参照してください。
setNotificationTypeId(id)
署名
public void setNotificationTypeId(String id)
パラメーター
- id
- 型: String
- 通知に使用されているカスタム通知種別の ID。
- カスタム通知を送信するには通知種別が必要です。「CustomNotification クラス」の「使用法」を参照してください。
戻り値
型: void
例
「CustomNotification クラス」の「例」を参照してください。
setTitle(title)
署名
public void setTitle(String title)
パラメーター
- title
- 型: String
- 受信者に表示される通知のタイトル。最大文字数は 250 文字です。
- カスタム通知を送信するにはタイトルが必要です。「CustomNotification クラス」の「使用法」を参照してください。
戻り値
型: void
例
「CustomNotification クラス」の「例」を参照してください。
setBody(body)
署名
public void setBody(String body)
パラメーター
- body
- 型: String
- 受信者に表示される通知の本文。最大文字数は 750 文字です。
- カスタム通知を送信するには本文が必要です。「CustomNotification クラス」の「使用法」を参照してください。
戻り値
型: void
例
「CustomNotification クラス」の「例」を参照してください。
setSenderId(id)
署名
public void setSenderId(String id)
パラメーター
- id
- 型: String
- 通知の送信者のユーザー ID。
- 送信者の設定は任意です。「CustomNotification クラス」の「使用法」を参照してください。
戻り値
型: void
例
「CustomNotification クラス」の「例」を参照してください。
setTargetId(targetId)
署名
public void setTargetId(String targetId)
パラメーター
- targetId
- 型: String
- 通知の対象レコードのレコード ID。
- カスタム通知を送信するには targetID または targetPageRef が必要です。「CustomNotification クラス」の「使用法」を参照してください。
戻り値
型: void
例
「CustomNotification クラス」の「例」を参照してください。
setTargetPageRef(pageRef)
署名
public void setTargetPageRef(String pageRef)
パラメーター
- pageRef
- 型: String
- 通知のナビゲーション対象の PageReference。
- カスタム通知を送信するには targetID または targetPageRef が必要です。「CustomNotification クラス」の「使用法」を参照してください。
戻り値
型: void
例
「CustomNotification クラス」の「例」を参照してください。