この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Site クラス

Site クラスを使用して、Force.com サイトを管理します。

名前空間

System

使用方法

site.createPortalUser の使用時に例外が発生した場合、null が返され、サイトのシステム管理者にはメールが送信されます。サイトの詳細は、Salesforce オンラインヘルプの「Force.com サイトの概要」を参照してください。

Force.com Sites の例

次の例では、クラス SiteRegisterController を作成します。このクラスは Visualforce ページ (下記マークアップを参照) を使用して、新規カスタマーポータルユーザを登録します。

次の例では、新しいポータルユーザと関連付ける取引先の取引先 ID を入力する必要があります。取引先所有者をこのコード例が機能するロール階層に追加する必要もあります。詳細は、Salesforce オンラインヘルプの「カスタマーポータルの設定」を参照してください。

メモ

1/**
2 * An Apex class that creates a portal user
3 */
4public class SiteRegisterController {
5    // PORTAL_ACCOUNT_ID is the account on which the contact will be created on 
6    //  and then enabled as a portal user.
7    //Enter the account ID in place of <portal_account_id> below.
8    private static Id PORTAL_ACCOUNT_ID = '<portal_account_id>';
9    
10    public SiteRegisterController () {
11    }
12
13    public String username {get; set;}
14    public String email {get; set;}
15    public String password {get; set {password = value == null ? value : value.trim(); } }
16    public String confirmPassword {get; set { confirmPassword = 
17        value == null ? value : value.trim(); } }
18    public String communityNickname {get; set { communityNickname = \
19        value == null ? value : value.trim(); } }
20      
21    private boolean isValidPassword() {
22        return password == confirmPassword;
23    }
24    
25    public PageReference registerUser() {
26        // If password is null, a random password is sent to the user
27        if (!isValidPassword()) {
28           ApexPages.Message msg = new ApexPages.Message(ApexPages.Severity.ERROR, 
29               Label.site.passwords_dont_match);
30           ApexPages.addMessage(msg);
31            return null;
32        }    
33        User u = new User();
34        u.Username = username;
35        u.Email = email;
36        u.CommunityNickname = communityNickname;
37        
38        String accountId = PORTAL_ACCOUNT_ID;
39
40        // lastName is a required field on user, but if it isn't specified, 
41           the code uses the username
42        String userId = Site.createPortalUser(u, accountId, password);
43        if (userId != null) { 
44            if (password != null && password.length() > 1) {
45                return Site.login(username, password, null);
46            }
47            else {
48                PageReference page = System.Page.SiteRegisterConfirm;
49                page.setRedirect(true);
50                return page;
51            }
52        }
53        return null;
54    }
55}
1/**
2 * Test class.
3 */
4@isTest
5private class SiteRegisterControllerTest {
6    // Test method for verifying the positive test case
7    static testMethod void testRegistration() {
8        SiteRegisterController controller = new SiteRegisterController();
9        controller.username = 'test@force.com';
10        controller.email = 'test@force.com';
11        controller.communityNickname = 'test';
12        // registerUser always returns null when the page isn't accessed as a guest user
13        System.assert(controller.registerUser() == null);
14        controller.password = 'abcd1234';
15        controller.confirmPassword = 'abcd123';
16        System.assert(controller.registerUser() == null);
17    }
18}
次は、上記の SiteRegisterController Apex コントローラを使用する Visualforce 登録ページです。
1<apex:page id="Registration" showHeader="false" controller=
2    "SiteRegisterController" standardStylesheets="true">
3  <apex:outputText value="Registration"/>
4  <br/>
5  <apex:form id="theForm">
6    <apex:messages id="msg" styleClass="errorMsg" layout="table" style="margin-top:1em;"/>
7    <apex:panelGrid columns="2" style="margin-top:1em;">
8      <apex:outputLabel value="{!$Label.site.username}" for="username"/>
9      <apex:inputText required="true" id="username" value="{!username}"/>
10      <apex:outputLabel value="{!$Label.site.community_nickname}" 
11          for="communityNickname"/>
12      <apex:inputText required="true" id="communityNickname" required="true" 
13          value="{!communityNickname}"/>
14      <apex:outputLabel value="{!$Label.site.email}" for="email"/>
15      <apex:inputText required="true" id="email" required="true" value="{!email}"/>
16      <apex:outputLabel value="{!$Label.site.password}" for="password"/>
17      <apex:inputSecret id="password" value="{!password}"/>
18      <apex:outputLabel value="{!$Label.site.confirm_password}" for="confirmPassword"/>
19      <apex:inputSecret id="confirmPassword" value="{!confirmPassword}"/>
20      <apex:outputText value=""/>
21      <apex:commandButton action="{!registerUser}" value="{!$Label.site.submit}" 
22          id="submit"/>
23    </apex:panelGrid>
24  </apex:form>
25cod</apex:page>
createPersonAccountPortalUser メソッドのサンプルコードは、上記のサンプルコードとほぼ同じですが、次の点が変更されています。
  • PORTAL_ACCOUNT_ID のすべてのインスタンスを OWNER_ID に置き換えています。
  • accountID ではなく ownerID を決定し、次のコードブロックに置き換えることにより、CreatePortalUser メソッドではなく createPersonAccountPortalUser メソッドを使用しています。
    1String accountId = PORTAL_ACCOUNT_ID;
    2String userId = Site.createPortalUser(u, accountId, password);
    置換後
    1String ownerId = OWNER_ID;
    2String userId = Site.createPersonAccountPortalUser(u, ownerId, password);

Site メソッド

Site のメソッドは次のとおりです。すべてのメソッドが静的です。

changePassword(newPassword, verifyNewPassword, oldPassword)

現在のユーザのパスワードを変更します。

署名

public static System.PageReference changePassword(String newPassword, String verifyNewPassword, String oldPassword)

パラメータ

newPassword
型: String
verifyNewPassword
型: String
oldPassword
型: String
省略可能。

戻り値

型: System.PageReference

使用方法

API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットしません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。

createExternalUser(name, accountId)

指定された取引先のコミュニティまたはポータルユーザを作成し、コミュニティに関連付けます。

署名

public static Id createExternalUser(SObject name, String accountId)

パラメータ

name
型: SObject
ユーザを作成するために必要な情報。
accountId
型: String
ユーザを関連付ける取引先の ID。

戻り値

型: Id

このメソッドで作成されるユーザの ID。

使用方法

このメソッドは、ユーザの作成に失敗すると、Site.ExternalUserCreateException を発生させます。

nickname 項目は、createExternalUser メソッドを使用する場合に User sObject に必要です。

このメソッドは、サイトがカスタマーポータルに関連付けられている場合にのみ有効です。

メモ

API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットしません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。

createExternalUser(name, accountId, password)

指定された取引先のコミュニティまたはポータルユーザを作成し、コミュニティに関連付けます。このメソッドでは、指定されたパスワードが記載されたメールをユーザに送信します。

署名

public static Id createExternalUser(SObject name, String accountId, String password)

パラメータ

name
型: SObject
ユーザを作成するために必要な情報。
accountId
型: String
ユーザを関連付ける取引先の ID。
password
型: String
コミュニティまたはポータルユーザのパスワード。指定しない場合、または null または空の文字列が設定されている場合、このメソッドは新しいパスワードメールをポータルユーザに送信します。

戻り値

型: Id

このメソッドで作成されるユーザの ID。

使用方法

このメソッドは、ユーザの作成に失敗すると、Site.ExternalUserCreateException を発生させます。

nickname 項目は、createExternalUser メソッドを使用する場合に User sObject に必要です。

このメソッドは、サイトがカスタマーポータルに関連付けられている場合にのみ有効です。

メモ

API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットしません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。

createExternalUser(name, accountId, password, sendEmailConfirmation)

コミュニティまたはポータルユーザを作成し、指定された取引先に関連付けます。このメソッドでは、指定されたパスワードと新規ユーザの確認が記載されたメールをユーザに送信します。

署名

public static Id createExternalUser(SObject name, String accountId, String password, Boolean sendEmailConfirmation)

パラメータ

name
型: SObject
ユーザを作成するために必要な情報。
accountId
型: String
ユーザを関連付ける取引先の ID。
password
型: String
コミュニティまたはポータルユーザのパスワード。指定しない場合、または null または空の文字列が設定されている場合、このメソッドは新しいパスワードメールをポータルユーザに送信します。
sendEmailConfirmation
型: Boolean
新しいユーザメールがポータルユーザに送信されるかどうかを指定します。新しいユーザメールをポータルユーザに送信するには、true に設定します。デフォルトは false で、新しいユーザメールは送信されません。

戻り値

型: Id

このメソッドで作成されるユーザの ID。

使用方法

このメソッドは、ユーザの作成に失敗すると、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)

パラメータ

user
型: sObject
ownerId
型: String
password
型: String

戻り値

型: ID

使用方法

API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットしません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。

この方法は、サイトがカスタマーポータルに関連付けられている場合、およびデフォルトの新しいユーザプロファイルのユーザライセンスが大規模ポータルユーザである場合にのみ有効です。

メモ

createPersonAccountPortalUser(user, ownerId, recordTypeId, password)

指定された recordTypeID を使用して個人取引先を作成し、サイトのポータルでその個人取引先を有効化します。

署名

public static ID createPersonAccountPortalUser(sObject user, String ownerId, String recordTypeId, String password)

パラメータ

user
型: sObject
ownerId
型: String
recordTypeId
型: String
password
型: String

戻り値

型: ID

使用方法

API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットしません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。

この方法は、サイトがカスタマーポータルに関連付けられている場合、およびデフォルトの新しいユーザプロファイルのユーザライセンスが大規模ポータルユーザである場合にのみ有効です。

メモ

createPortalUser(user, accountId, password, sendEmailConfirmation)

指定された取引先のポータルユーザを作成し、サイトのポータルと関連付けます。

署名

public static ID createPortalUser(sObject user, String accountId, String password, Boolean sendEmailConfirmation)

パラメータ

user
型: sObject
accountId
型: String
password
型: String
(省略可能) ポータルユーザのパスワードです。指定しない場合、または null または空の文字列が設定されている場合、このメソッドは新しいパスワードメールをポータルユーザに送信します。
sendEmailConfirmation
型: Boolean
(省略可能) 新しいユーザメールがポータルユーザに送信されるかどうかを指定します。新しいユーザメールをポータルユーザに送信するには、true に設定します。デフォルトは false で、新しいユーザメールは送信されません。

戻り値

型: ID

使用方法

nickname 項目は、createPortalUser メソッドを使用する場合にユーザの sObject に必要です。

このメソッドは、サイトがカスタマーポータルに関連付けられている場合にのみ有効です。

メモ

API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットしません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。

forgotPassword(username)

ユーザのパスワードをリセットし、新しいパスワードを記載したメールをユーザに送信します。パスワードのリセットが正常に行われたかどうかを示す値を返します。

署名

public static Boolean forgotPassword(String username)

パラメータ

username
型: String

戻り値

型: Boolean

Visualforce ページの外側からコールされる場合を除き、戻り値は常に true です。Visualforce ページの外側からコールされる場合、戻り値は false です。

メモ

使用方法

API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットしません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。

getAdminEmail()

サイト管理者のメールアドレスを返します。

署名

public static String getAdminEmail()

戻り値

型: String

getAdminId()

サイト管理者のユーザ ID を返します。

署名

public static ID getAdminId()

戻り値

型: ID

getAnalyticsTrackingCode()

サイトに関連付けられている追跡コード。このコードは、Google Analytics などのサービスによって、サイトのページ要求データを追跡するために使用されます。

署名

public static String getAnalyticsTrackingCode()

戻り値

型: String

getCurrentSiteUrl()

非推奨。このメソッドは API バージョン 30.0 の getBaseUrl() に置き換えられました。参照やリンクで使用する必要がある、現在のサイトのベース URL を返します。

署名

この項目では、現在の要求の URL ではなく、参照元ページの URL を返す場合があります。返された値にはパスプレフィックスが含まれており、値の末尾は常に / ���字です。現在の要求がサイト要求ではない場合、このメソッドは null を返します。現在の要求がサイト要求ではない場合、このメソッドは null を返します。このメソッドは API バージョン 30.0 の getBaseUrl に置き換えられました。

public static String getCurrentSiteUrl()

戻り値

型: String

使用方法

代わりに、getBaseUrl() を使用してください。

getBaseCustomUrl()

Force.com サブドメインが使用されていない、現在のサイトのベース URL を返します。サイトの Force.com 以外のカスタム URL のうち、少なくとも 1 つが HTTPS をサポートしている場合、返された URL は、現在の要求と同じプロトコル (HTTP または HTTPS) を使用します。返された値の末尾は常に / 文字以外です。このサイトのすべてのカスタム URL の末尾が Force.com か、このサイトにカスタム URL がない場合、空の文字列が返されます。現在の要求がサイト要求ではない場合、このメソッドは空の文字列を返します。getCustomWebAddress はこのメソッドに置き換わりました。またこのメソッドにはカスタム URL のパスプレフィックスが含まれます。

署名

public static String getBaseCustomUrl()

戻り値

型: String

使用方法

このメソッドにより getCustomWebAddress() が置き換えられます。またこのメソッドにはカスタム URL のパスプレフィックスが含まれます。

getBaseInsecureUrl()

HTTPS ではなく HTTP が使用されている、現在のサイトのベース URL を返します。現在の要求のドメインが使用されます。返された値にはパスプレフィックスが含まれており、値の末尾は常に / 文字以外です。現在の要求がサイト要求ではない場合、このメソッドは空の文字列を返します。

署名

public static String getBaseInsecureUrl()

戻り値

型: String

getBaseRequestUrl()

要求された URL について、現在のサイトのベース URL を返します。これは、参照元ページの URL による影響を受けません。返された URL は、現在の要求と同じプロトコル (HTTP または HTTPS) を使用します。返された値にはパスプレフィックスが含まれており、値の末尾は常に / 文字以外です。現在の要求がサイト要求ではない場合、このメソッドは空の文字列を返します。

署名

public static String getBaseRequestUrl()

戻り値

型: String

getBaseSecureUrl()

HTTP ではなく HTTPS が使用されている、現在のサイトのベース URL を返します。現在の要求のドメインが HTTPS をサポートしていれば優先されます。Force.com サブドメイン以外のドメインは、Force.com サブドメインよりも優先されます。Force.com サブドメインは、サイトに関連付けられている場合、現在のサイトに他の HTTPS ドメインがなければ使用されます。サイトに HTTPS カスタム URL がない場合、このメソッドは空の文字列を返します。返された値にはパスプレフィックスが含まれており、値の末尾は常に / 文字以外です。現在の要求がサイト要求ではない場合、このメソッドは空の文字列を返します。

署名

public static String getBaseSecureUrl()

戻り値

型: String

getBaseUrl()

参照やリンクで使用する必要がある、現在のサイトのベース URL を返します。この項目では、現在の要求の URL ではなく、参照元ページの URL を返す場合があります。返された値にはパスプレフィックスが含まれており、値の末尾は常に / 文字以外です。現在の要求がサイト要求ではない場合、この項目は空の文字列を返します。getCurrentSiteUrl は、この項目に置き換えられます。

署名

public static String getBaseUrl()

戻り値

型: String

使用方法

getCurrentSiteUrl() は、このメソッドに置き換えられます。

getCustomWebAddress()

非推奨。このメソッドは API バージョン 30.0 の getBaseCustomUrl() に置き換えられました。

署名

要求のカスタム URL の末尾が Force.com ではない場合はカスタム URL を返し、そうでない場合はサイトの主カスタム URL を返します。どちらも存在しない場合は、null を返します。この URL のパスは、要求のカスタム URL にパスプレフィックスがあっても、常にルートです。現在の要求がサイト要求ではない場合、このメソッドは null を返します。返された値の末尾は常に / 文字です。

public static String getCustomWebAddress()

戻り値

型: String

使用方法

代わりに、getBaseCustomUrl() を使用してください。

getDomain()

組織の Force.com ドメイン名を返します。

署名

public static String getDomain()

戻り値

型: String

getErrorDescription()

現在のページがサイトに指定されたエラーページであり、エラーがある場合は、現在のページのエラーの説明を返し、そうでない場合は空の文字列を返します。

署名

public static String getErrorDescription()

戻り値

型: String

getErrorMessage()

現在のページがサイトに指定されたエラーページで、エラーがある場合は、現在のページのエラーメッセージを返し、そうでない場合は空の文字列を返します。

署名

public static String getErrorMessage()

戻り値

型: String

getMasterLabel()

現在のサイトの [マスタ表示ラベル] 項目の値を返します。現在の要求がサイト要求ではない場合、この項目は null を返します。

署名

public static String getMasterLabel()

戻り値

型: String

getName()

現在のサイトの API 名を返します。

署名

public static String getName()

戻り値

型: String

getOriginalUrl()

このページがサイトに指定されたエラーページである場合は、元の URL を返��、そうでない場合は null を返します。

署名

public static String getOriginalUrl()

戻り値

型: String

getPasswordPolicyStatement()

Napili テンプレートで作成されたコミュニティのパスワード要件を返します。

署名

public static String getPasswordPolicyStatement()

戻り値

型: String

getPathPrefix()

現在のサイトの URL パスプレフィックスを返し、存在しない場合は空の文字列を返します。たとえば、要求されたサイト URL が http://myco.force.com/partners である場合、/partners がパスプレフィックスです。現在の要求がサイト要求ではない場合、このメソッドは空の文字列を返します。このメソッドは API バージョン 30.0 の getPrefix に置き換わりました。

署名

public static String getPathPrefix()

戻り値

型: String

getPrefix()

非推奨。このメソ���ドは API バージョン 30.0 の getPathPrefix() に置き換えられました。

署名

現在のサイトの URL パスプレフィックスを返します。たとえば、サイト URL が myco.force.com/partners である場合、/partners がパスのプレフィックスです。プレフィックスが定義されていない場合は null を返します。現在の要求がサイト要求ではない場合、このメソッドは null を返します。

public static String getPrefix()

戻り値

型: String

getSiteId()

現在のサイトの ID を返します。現在の要求がサイト要求ではない場合、この項目は null を返します。

署名

public static String getSiteId()

戻り値

型: Id

getTemplate()

現在のサイトに関連付けられたテンプレートを返します。テンプレートが指定されていない場合、デフォルトテンプレートを返します。

署名

public static System.PageReference getTemplate()

戻り値

型: System.PageReference

getSiteType()

現在のサイトの [サイト種別] 項目の API 値を返します。これは、Force.com サイトの VisualforceSite.com サイトの Siteforce、Force.com コミュニティサイトの ChatterNetwork、または Site.com コミュニティサイトの ChatterNetworkPicasso を返します。現在の要求がサイト要求ではない場合、このメソッドは null を返します。

署名

public static String getSiteType()

戻り値

型: String

getSiteTypeLabel()

現在のサイトの [サイト種別] 項目の表示ラベル値を返します。現在の要求がサイト要求ではない場合、このメソッドは null を返します。

署名

public static String getSiteTypeLabel()

戻り値

型: String

isLoginEnabled()

現在のサイトがログインが有効なポータルと関連付けられている場合は true を返し、そうでない場合は false を返します。

署名

public static Boolean isLoginEnabled()

戻り値

型: Boolean

isPasswordExpired()

認証ユーザの場合、現在ログインしているユーザのパスワードの有効期限が切れている場合、true を返します。認証されていないユーザの場合は、false を返します。

署名

public static Boolean isPasswordExpired()

戻り値

型: Boolean

isRegistrationEnabled()

現在のサイトがセルフ登録対応のカスタマーポータルと関連付けられている場合は true を返し、そうでない場合は false を返します。

署名

public static Boolean isRegistrationEnabled()

戻り値

型: Boolean

isValidUsername(username)

特定のユーザ名が有効な場合は true、有効ではない場合は false を返します。

署名

public static Boolean isValidUsername(String username)

パラメータ

username
型: String
有効性をテストするユーザ名。

戻り値

型: Boolean

login(username, password, startUrl)

ユーザは指定されたユーザ名およびパスワードで現在のサイトにログインでき、ユーザを startUrl に誘導します。startUrl が相対パスでない場合、デフォルトはサイトの指定されたインデックスページになります。

署名

public static System.PageReference login(String username, String password, String startUrl)

パラメータ

username
型: String
password
型: String
startUrl
型: String

戻り値

型: System.PageReference

使用方法

Site.login をコールする前のすべての DML ステートメントがコミットされます。Site.login をコールする前に作成されたセーブポイントにロールバックできません。

startURLhttp:// または https:// を指定しないでください。

メモ

setPortalUserAsAuthProvider(user, contactId)

サイトのポータル内の指定されたユーザ情報を認証プロバイダ経由で設定します。

署名

public static Void setPortalUserAsAuthProvider(sObject user, String contactId)

パラメータ

user
型: sObject
contactId
型: String

戻り値

型: Void

使用方法

  • このメソッドは、サイトがカスタマーポータルに関連付けられている場合にのみ有効です。
  • API バージョン 30.0 以降では、このメソッドへのコールはトランザクションを自動的にコミットしません。API バージョン 30.0 より前では、このメソッドへのコールはトランザクションをコミットするため、コール前のセーブポイントにロールバックできません。
  • 認証プロバイダについての詳細は、RegistrationHandlerを参照してください。

validatePassword(user, password, confirmPassword)

特定のパスワードが、現在のユーザの組織全体またはプロファイルベースのパスワードポリシーで指定された要件を満たすかどうかを示します。

署名

public static void validatePassword(SObject user, String password, String confirmPassword)

パラメータ

user
型: SObject
コミュニティへのセルフ登録中にパスワードを作成しようとしているユーザ。
password
型: String
ユーザが入力したパスワード。
confirmPassword
型: String
パスワードの確認のためにユーザが再入力したパスワード。

戻り値

型: void

使用方法

メソッドが Lightning コントローラで実行されたときに検証が失敗すると、失敗した検証を説明する Apex 例外が発生します。メソッドが Visualforce コントローラで実行されたときに検証が失敗すると、Visualforce エラーメッセージが提供されます。