Site クラス
名前空間
Site のメソッド
Site のメソッドは次のとおりです。すべてのメソッドが静的です。
changePassword(newPassword, verifyNewPassword, oldPassword)
署名
public static System.PageReference changePassword(String newPassword, String verifyNewPassword, String oldPassword)
パラメーター
戻り値
createExternalUser(user, accountId)
署名
public static Id createExternalUser(SObject user, String accountId)
パラメーター
使用方法
このメソッドは、ユーザーの作成に失敗すると、Site.ExternalUserCreateException を発生させます。
nickname 項目は、createExternalUser メソッドを使用する場合に User sObject に必要です。
API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットできません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。
createExternalUser(user, accountId, password)
署名
public static Id createExternalUser(SObject user, String accountId, String password)
パラメーター
- user
- 型: SObject
- ユーザーを作成するために必要な情報。
ユーザーのメールアドレスを使用して、指定された accountId に関連付けられる一致する取引先責任者を検索します。一致する取引先責任者が見つかり、外部ユーザーによってすでに使用されている場合、セルフ登録は成功しません。一致する取引先責任者が見つかり、外部ユーザーによって使用されていない場合、その取引先責任者は新規外部ユーザーの取引先責任者として使用されます。一致する取引先責任者がない場合、新規外部ユーザーの新規取引先責任者が作成されます。
- accountId
- 型: String
- ユーザーを関連付ける取引先の ID。
- password
- 型: String
- Salesforce サイトユーザーまたは Experience Cloud サイトユーザーのパスワード。指定しない場合、または null または空の文字列が設定されている場合、このメソッドは新しいパスワードメールをポータルユーザーに送信します。
使用方法
このメソッドは、ユーザーの作成に失敗すると、Site.ExternalUserCreateException を発生させます。
nickname 項目は、createExternalUser メソッドを使用する場合に User sObject に必要です。
API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットできません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。
createExternalUser(user, accountId, password, sendEmailConfirmation)
署名
public static Id createExternalUser(SObject user, String accountId, String password, Boolean sendEmailConfirmation)
パラメーター
- user
- 型: SObject
-
ユーザーを作成するために必要な情報。
ユーザーのメールアドレスを使用して、指定された accountId に関連付けられる一致する取引先責任者を検索します。一致する取引先責任者が見つかり、外部ユーザーによってすでに使用されている場合、セルフ登録は成功しません。一致する取引先責任者が見つかり、外部ユーザーによって使用されていない場合、その取引先責任者は新規外部ユーザーの取引先責任者として使用されます。一致する取引先責任者がない場合、新規外部ユーザーの新規取引先責任者が作成されます。
- accountId
- 型: String
- ユーザーを関連付ける取引先の ID。
- password
- 型: String
- Salesforce サイトユーザーまたは Experience Cloud サイトユーザーのパスワード。指定しない場合、または null または空の文字列が設定されている場合、このメソッドは新しいパスワードメールをポータルユーザーに送信します。
- sendEmailConfirmation
- 型: Boolean
- 新しいユーザーメールがポータルユーザーに送信されるかどうかを指定します。新しいユーザーメールをポータルユーザーに送信するには、true に設定します。デフォルトは false で、新しいユーザーメールは送信されません。
使用方法
このメソッドは、ユーザーの作成に失敗すると、Site.ExternalUserCreateException を発生させます。
nickname 項目は、createExternalUser メソッドを使用する場合に User sObject に必要です。
API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットできません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。
createPersonAccountPortalUser(user, ownerId, password)
署名
public static ID createPersonAccountPortalUser(sObject user, String ownerId, String password)
戻り値
型: ID
使用方法
API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットできません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。
createPersonAccountPortalUser(user, ownerId, recordTypeId, password)
署名
public static ID createPersonAccountPortalUser(sObject user, String ownerId, String recordTypeId, String password)
戻り値
型: ID
使用方法
API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットできません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。
createPortalUser(user, accountId, password, sendEmailConfirmation)
署名
public static ID createPortalUser(sObject user, String accountId, String password, Boolean sendEmailConfirmation)
パラメーター
戻り値
型: ID
使用方法
API バージョン 34.0 以降を使用している場合、このメソッドよりも適切にエラーが処理される createExternalUser() メソッドを使用することをお勧めします。
nickname 項目は、createPortalUser メソッドを使用する場合にユーザーの sObject に必要です。
API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットできません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。
forgotPassword(username, emailTemplateName)
署名
public static Boolean forgotPassword(String username,String emailTemplateName)
パラメーター
戻り値
型: Boolean
使用方法
API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットできません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。
forgotPassword(username)
署名
public static Boolean forgotPassword(String username)
パラメーター
- username
- 型: String
戻り値
型: Boolean
使用方法
API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットできません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。
getAnalyticsTrackingCode()
署名
public static String getAnalyticsTrackingCode()
戻り値
型: String
getCurrentSiteUrl()
署名
この項目では、現在の要求の URL ではなく、参照元ページの URL を返す場合があります。返された値にはパスプレフィックスが含まれており、値の末尾は常に / 文字です。現在の要求がサイト要求ではない場合、このメソッドは null を返します。現在の要求がサイト要求ではない場合、このメソッドは null を返します。このメソッドは API バージョン 30.0 の getBaseUrl に置き換えられました。
public static String getCurrentSiteUrl()
戻り値
型: String
使用方法
代わりに、getBaseUrl() を使用してください。
getBaseCustomUrl()
署名
public static String getBaseCustomUrl()
戻り値
型: String
使用方法
このメソッドにより getCustomWebAddress() が置き換えられます。またこのメソッドにはカスタム URL のパスプレフィックスが含まれます。
getBaseInsecureUrl()
署名
public static String getBaseInsecureUrl()
戻り値
型: String
getBaseRequestUrl()
署名
public static String getBaseRequestUrl()
戻り値
型: String
getBaseSecureUrl()
署名
public static String getBaseSecureUrl()
戻り値
型: String
getBaseUrl()
署名
public static String getBaseUrl()
戻り値
型: String
使用方法
getCurrentSiteUrl() は、このメソッドに置き換えられます。
getCustomWebAddress()
署名
要求のカスタム URL の末尾が Lightning プラットフォームではない場合はカスタム URL を返し、そうでない場合はサイトの主カスタム URL を返します。どちらも存在しない場合は、null を返します。この URL のパスは、要求のカスタム URL にパスプレフィックスがあっても、常にルートです。現在の要求がサイト要求ではない場合、このメソッドは null を返します。返された値の末尾は常に / 文字です。
public static String getCustomWebAddress()
戻り値
型: String
使用方法
代わりに、getBaseCustomUrl() を使用してください。
getErrorDescription()
署名
public static String getErrorDescription()
戻り値
型: String
getErrorMessage()
署名
public static String getErrorMessage()
戻り値
型: String
getExperienceId()
署名
public static String getExperienceId()
戻り値
型: String
使用方法
動的ログイン環境を実装するには、getExperienceId および setExperienceId メソッドを使用します。setExperienceId を使用して、または次のエンドポイントを expid_value で拡張してエクスペリエンス ID を設定できます。
- community-url/services/oauth2/authorize/expid_value
- community-url/idp/endpoint/HttpPost/expid_value
- community-url/idp/endpoint/HttpRedirect/expid_value
- community-url_login_page/expid={value}
- community-url/CommunitiesSelfReg?expid={value}
- secur/forgotpassword.jsp?expid={value}
ブラウザーが expid 値を含む URL を読み込むときに Cookie が設定されます。
getMasterLabel()
署名
public static String getMasterLabel()
戻り値
型: String
getOriginalUrl()
署名
public static String getOriginalUrl()
戻り値
型: String
getPathPrefix()
署名
public static String getPathPrefix()
戻り値
型: String
getPrefix()
署名
現在のサイトの URL パスプレフィックスを返します。たとえば、サイト URL が MyDomainName.my.salesforce-sites.com/partners である場合、/partners がパスのプレフィックスです。プレフィックスが定義されていない場合は null を返します。現在の要求がサイト要求ではない場合、このメソッドは null を返します。
public static String getPrefix()
戻り値
型: String
getTemplate()
署名
public static System.PageReference getTemplate()
戻り値
getSiteType()
署名
public static String getSiteType()
戻り値
型: String
getSiteTypeLabel()
署名
public static String getSiteTypeLabel()
戻り値
型: String
isLoginEnabled()
署名
public static Boolean isLoginEnabled()
戻り値
型: Boolean
isPasswordExpired()
署名
public static Boolean isPasswordExpired()
戻り値
型: Boolean
isRegistrationEnabled()
署名
public static Boolean isRegistrationEnabled()
戻り値
型: Boolean
login(username, password, startUrl)
署名
public static System.PageReference login(String username, String password, String startUrl)
戻り値
使用方法
Site.login をコールする前のすべての DML ステートメントがコミットされます。Site.login をコールする前に作成されたセーブポイントにロールバックできません。
passwordlessLogin(userId, methods, startUrl)
署名
public static System.PageReference passwordlessLogin(Id userId, List<Auth.VerificationMethod> methods, String startUrl)
パラメーター
- userId
- 型: Id
- ログインするユーザーの ID。
- methods
- 型: List<Auth.VerificationMethod>
- ユーザーがパスワードなしのログインで使用できる ID 検証方法のリスト。
- startUrl
- 型: String
- ログイン後にユーザーに表示するページへのパス。
戻り値
使用方法
カスタムログインページ実装の Apex コントローラーにこのメソッドを含めます。
passwordlessLogin の例
この Apex コントローラーの簡単なコード例には、passwordlessLogin メソッドが含まれています。passwordlessLogin で返された PageReference は、ユーザーを Salesforce の検証ページにリダイレクトします。ユーザーは、正しいコードを入力すると、開始 URL で指定されたサイトページにリダイレクトされます。
1global with sharing class MFILoginController
2{
3 //Input variables
4 global String input {get; set;}
5 public String startURL {get; set;}
6 public List<Auth.VerificationMethod> methods;
7 public String error;
8
9 global MFILoginController()
10 {
11 // Add verification methods in priority order
12 methods = new List<Auth.VerificationMethod>();
13 methods.add(Auth.VerificationMethod.SMS);
14 methods.add(Auth.VerificationMethod.EMAIL);
15 methods.add(Auth.VerificationMethod.U2F);
16 methods.add(Auth.VerificationMethod.SALESFORCE_AUTHENTICATOR);
17 methods.add(Auth.VerificationMethod.TOTP);
18 }
19
20 global PageReference login() {
21 List<User> users = null;
22
23 // Empty input
24 if(input == null || input == '')
25 {
26 error = 'Enter Username';
27 return null;
28 }
29
30 users = [select name, id, email from User where username=:input];
31 if(users == null || users.isEmpty())
32 {
33 error = 'Can\'t find a user';
34 return null;
35 }
36
37 if (startURL == null) startURL = '/';
38 return Site.passwordlessLogin(users[0].id, methods, startURL);
39 }
40}setExperienceId(expIdValue)
署名
public static void setExperienceId(String expIdValue)
パラメーター
- expIdValue
- 型: String
- ユーザーのログイン環境を示す値。
この値には最大 30 文字の英数字のみを使用します。
使用方法
動的ログイン環境を実装する場合は、setExperienceId を使用します。ログイン環境とは、ログインページとそれに関連付けられたセカンダリページを指します (多要素認証 (MFA) やログインフローなど)。ユーザーは誰か、またはユーザーはどこからログインしているかに応じて、異なるログイン環境を定義します。たとえば、ユーザーの場所に基づいて異なる登録プロセスを要求できます。この場合、expIdValue には都道府県または国コードが含まれます。ユーザーがログインすると、URL にはエクスペリエンス ID パラメーター {expid} が含まれます。{expid} パラメーターは、.jp など、expIdValue に保存されている値で置き換えられます。すると、ユーザーは日本語ログイン環境にリダイレクトされます。
例
1String expid = ApexPages.currentPage().getParameters().get('expid');
2 if (expId != null) {
3 Site.setExperienceId(expId);
4 }setPortalUserAsAuthProvider(user, contactId)
署名
public static Void setPortalUserAsAuthProvider(sObject user, String contactId)
戻り値
型: Void
使用方法
- このメソッドは、サイトがカスタマーポータルに関連付けられている場合にのみ有効です。
- API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットできません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。
- 認証プロバイダーについての詳細は、「RegistrationHandler」を参照してください。
validatePassword(user, password, confirmPassword)
署名
public static void validatePassword(SObject user, String password, String confirmPassword)
パラメーター
戻り値
型: void