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

Newer Version Available

This content describes an older version of this product. View Latest

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 登録ページです。
1swfobject.registerObject("clippy.codeblock-2", "9");<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>
26
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(String, String, String)

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

署名

public static System.PageReference changePassword(String newpassword, String verifynewpassword, String opt_oldpassword)

パラメータ

newpassword
型: String
verifynewpassword
型: String
opt_oldpassword
型: String

戻り値

型: System.PageReference

使用方法

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

createPersonAccountPortalUser(sObject, String, String)

ゲストユーザのプロファイルに定義���れているデフォルトのレコードタイプを使用して個人取引先を作成し、サイトのポータルでその個人取引先を有効化します。

署名

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

パラメータ

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

戻り値

型: ID

使用方法

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

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

メモ

createPersonAccountPortalUser(sObject, String, String, String)

指定された 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(sObject, String, String, Boolean)

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

署名

public static ID createPortalUser(sObject user, String accountId, String opt_password, Boolean opt_sendEmailConfirmation)

パラメータ

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

戻り値

型: ID

使用方法

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

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

メモ

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

forgotPassword(String)

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

署名

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

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 getSyteTypeLabel()

戻り値

型: 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

login(String, String, String)

ユーザは指定されたユーザ名およびパスワードで現在のサイトにログインでき、ユーザを 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(sObject, String)

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

署名

public static Void setPortalUserAsAuthProvider(sObject user, String contactId)

パラメータ

user
型: sObject
contactId
型: String

戻り値

型: Void

使用方法

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