SignupRequest
新しい Trialforce サインアップへの要求を表します。このオブジェクトは、API バージョン 27.0 以降で使用できます。
サポートされているコール
create()、delete()、describeLayout()、describeSObjects()、getDeleted()、getUpdated()、query()、retrieve()、undelete()
項目
| 項目名 | 詳細 |
|---|---|
| AuthCode |
|
| Company |
|
| ConnectedAppCallbackUrl |
|
| ConnectedAppConsumerKey |
|
| Country |
|
| CreatedOrgId |
|
| CreatedOrgInstance |
|
| ErrorCode |
|
| FirstName |
|
| LastName |
|
| SignupEmail |
|
| Status |
|
| Subdomain |
|
| SuppressSignupEmails |
|
| TemplateId |
|
| TrialDays |
|
| TrialSourceOrgId |
|
| Username |
|
使用方法
次の Java クラスでは REST API を使用して SignupRequest オブジェクトを作成します。Trialforce 管理組織に対して認証を行い、要求を SignupRequest オブジェクトにポスト送信します。
この例で指定が必要な変数を次に示します。
- SERVER — Trialforce 管理組織 (TMO) のホストサーバ名 (“na1.salesforce.com” など)。
- USERNAME — TMO の管理ユーザ名。
- PASSWORD — TMO の管理パスワードとセキュリティトークンを連結したもの。セキュリティトークンを含むメールを受け取るには、Salesforce の個人設定から、[私のセキュリティトークンのリセット] を選択し、[セキュリティトークンのリセット] をクリックします。
- CLIENT_ID — Salesforce の [設定] から、 をクリックし、[接続アプリケーション] の下にある [新規] をクリックします。必須項目に値を入力し ([コールバック URL] は必須ですが、使用されていないので最初は任意の有効な URL に設定できます)、[選択した OAuth 範囲] セレクタで OAuth 範囲としてフルアクセスを選択し、[保存] をクリックします。次に [コンシューマ鍵] の値をコピーし、この変数に使用します。
- CLIENT_SECRET — 同じページで [クリックして公開] をクリックします。次に [コンシューマの秘密] の値をコピーし、この変数に使用します。
1public class IsvSignupDriver {
2
3 private static final String SERVER = server_name:port;
4
5 private static final String USERNAME = tmo_username;
6
7 private static final String PASSWORD = tmo_passwordsecurity_token;
8
9 private static final String CLIENT_ID = consumer_key;
10
11 private static final String CLIENT_SECRET = consumer_secret;
12
13
14
15 private static SignupRequestInfo signupRequest = null;
16
17
18
19 public static String createSignupRequest (SignupRequestInfo sr)
20
21 throws JSONException, IOException {
22
23 JSONObject createResponse = null;
24
25 signupRequest = sr;
26
27 JSONObject loginResponse = login(SERVER, USERNAME, PASSWORD);
28
29 String instanceUrl = loginResponse.getString("instance_url");
30
31 String accessToken = loginResponse.getString("access_token");
32
33 createResponse = create(instanceUrl, accessToken);
34
35 System.out.println("Created SignupRequest object: " + createResponse + "\n");
36
37 return createResponse.toString();
38
39 }
40
41
42
43 /* Authenticates to the TMO using the required credentials */
44
45
46
47 private static JSONObject login(String server, String username, String password)
48
49 throws ClientProtocolException, IOException, JSONException {
50
51 String authEndPoint = server + "/services/oauth2/token";
52
53 HttpClient httpclient = new DefaultHttpClient();
54
55 try {
56
57 HttpPost post = new HttpPost(authEndPoint);
58
59
60
61 List<NameValuePair> params = new ArrayList<NameValuePair>();
62
63 params.add(new BasicNameValuePair("grant_type", "password"));
64
65 params.add(new BasicNameValuePair("client_id", CLIENT_ID));
66
67 params.add(new BasicNameValuePair("client_secret", CLIENT_SECRET));
68
69 params.add(new BasicNameValuePair("username", username));
70
71 params.add(new BasicNameValuePair("password", password));
72
73 post.setEntity(new UrlEncodedFormEntity(params, Consts.UTF_8));
74
75
76
77 BasicResponseHandler handler = new BasicResponseHandler();
78
79 String response = httpclient.execute(post, handler);
80
81 return new JSONObject(response);
82
83 } finally {
84
85 httpclient.getConnectionManager().shutdown();
86
87 }
88
89 }
90
91 /* Posts a request to the SignupRequest object */
92
93
94
95 private static JSONObject create(String instanceUrl, String accessToken)
96
97 throws ClientProtocolException, IOException, JSONException {
98
99 HttpClient httpClient = new DefaultHttpClient();
100
101 try {
102
103 HttpPost post = new HttpPost(instanceUrl +
104
105 "/services/data/v27.0/sobjects/SignupRequest/");
106
107 post.setHeader("Authorization", "Bearer " + accessToken);
108
109 post.setHeader("Content-Type", "application/json");
110
111
112
113 JSONObject requestBody = new JSONObject();
114
115 requestBody.put("TemplateId", signupRequest.getTemplateID());
116
117 requestBody.put("SignupEmail", signupRequest.getEmail());
118
119 requestBody.put("username", signupRequest.getUsername());
120
121 requestBody.put("Country", "US");
122
123 requestBody.put("Company", signupRequest.getCompanyName());
124
125 requestBody.put("lastName", signupRequest.getLastName());
126
127
128
129 StringEntity entity = new StringEntity(requestBody.toString());
130
131 post.setEntity(entity);
132
133 BasicResponseHandler handler = new BasicResponseHandler();
134
135 String response = httpClient.execute(post, handler);
136
137 return new JSONObject(response);
138
139 } finally {
140
141 httpClient.getConnectionManager().shutdown();
142
143 }
144
145 }
146
147}エラーコード
サインアップが失敗した場合、システムで原因の特定に役立つエラーコードが生成されます。次の表は最も重要なエラーコードの一覧です。
| エラーコード | 説明 |
|---|---|
| C-1007 | ユーザ名が重複しています。 |
| C-1015 | 新しい組織の [私のドメイン] 設定を構成するときにエラーが発生しました。Salesforce サポートにお問い合わせください。 |
| C-1016 | プロキシサインアップの OAuth 接続アプリケーションを設定しているときにエラーが発生しました。接続アプリケーションに有効なコンシューマキー、コールバック URL、および期限が切れていない証明書 (該当する場合) があることを確認してください。 |
| C-1018 | サインアップ中に無効なサブドメイン値が指定されました。 |
| C-1019 | サブドメインが使用中です。新しいサブドメイン値を選択してください。 |
| C-9999 | 汎用の「致命的なエラー」です。Salesforce サポートにお問い合わせください。 |
| S-1006 | メールアドレスが無効です (メールアドレス形式が不正)。 |
| S-2006 | 国コードが無効です。 |
| T-0001 | テンプレート ID が無効です (形式が 0TTxxxxxxxxxxxx ではない)。 |
| T-0002 |
テンプレートが見つかりません。テンプレートが存在しないか (削除された可能性がある)、または適切なバージョンが存在しません。 |
| T-0003 | Salesforce でテンプレートの使用が承認されていません。 |