Newer Version Available
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() を使用してください。
getDomain()
署名
public static String getDomain()
戻り値
型: String
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 が SitesSubdomainName.secure.force.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