📌 結論から:公式ドキュメントにない項目もAPIで設定できた
Pleasanterの公式マニュアルユーザー作成APIの解説では、ユーザー作成時に指定できる項目が一部に限られているように見えます。
しかし、実際に/api/users/getで取得できる既存ユーザーの情報を参考に、作成APIでも同じ項目を投げてみたところ、Language, TimeZone, PasswordExpirationTime, DeptIdなど、公式ドキュメントに記載がない項目でも、問題なく反映されることが分かりました。
✅ 設定できた項目まとめ(公式マニュアル未記載だがPOST可能)
項目名 | 画面の名称 | サンプル値 |
---|---|---|
LoginId |
ログインID | "your-login-id" |
Name |
名前 | "your-name" |
UserCode |
ユーザーコード | "user-code" |
Password |
初期パスワード | "パスワード" |
Email |
メールアドレス | "メールアドレス" |
Language |
言語 | "ja" |
TimeZone |
タイムゾーン | "Tokyo Standard Time" |
DeptId |
組織ID | 1(任意のIDを指定) |
Manager |
管理者 | 1(プリザンターのユーザーID) |
Theme |
テーマ(任意) | base等 |
Body |
説明 | "ユーザーの説明文です。" |
PasswordExpirationTime |
パスワードの有効期限 | "2025-01-01" |
TenantManager |
テナント管理者フラグ | true |
Disabled |
無効 | false |
Lockout |
ロック | false |
LockoutCounter |
ロックカウンター | 0 |
LoginExpirationLimit |
ログインの有効期限 | "2025-12-31" |
LoginExpirationPeriod |
ログインの有効期限期間(日数) | 365 |
📝 調査のきっかけ
PleasanterのWeb画面からユーザー新規作成を行うと、以下のような多くの項目が設定可能です。
項目一覧
- ログインID
- 名前
- ユーザコード
- パスワード
- 言語(初期値はJapanese)
- タイムゾーン(初期値は東京)
- 組織(リストボックス)
- 管理者(ユーザーの検索画面で選択)
- テーマ(リストボックス)
- 説明
- 最終ログイン日時
- パスワード有効期限
- テナント管理者
- 無効
- ロック
- ログイン有効期限
- 無効化までの日数
ユーザー作成時に最も設定したいものとして組織、管理者、パスワード有効期限が挙げられると思います。
パスワード有効期限について
パスワード有効期限は今の日付より後の日付に設定すると初回ログイン時にパスワードの設定を求められるようにできます。
参考:実際に試したプログラム
WinFormsのボタンクリックイベントでのサンプルです。
private async void button_Click(object sender, EventArgs e)
{
using HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("X-CData-AuthToken", "your-api-key-here");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string apiUrl = @"http://localhost/api/users/create";
var payload = new
{
ApiVersion = 1.1,
ApiKey = "your-api-key-here",
Name = "your-name", // 表示名
LoginId = "your-login-id", // ログインID
UserCode = "user-code", // 任意のユーザーコード
Password = "YourPassword123!", // 初期パスワード(サンプル)
Email = "your-name@example.com" // メールアドレス
Language = "ja", // 言語
TimeZone = "Tokyo Standard Time", // タイムゾーン
DeptId = 1, // 組織ID(任意のIDを指定)
Manager = 1, // 管理者ID(例:1)
Theme = "base", // テーマ(任意)
Body = "ユーザーの説明文です。", // 説明
PasswordExpirationTime = "2025-01-01",// パスワードの有効期限
TenantManager = true, // テナント管理者フラグ
Disabled = false, // 無効化フラグ
Lockout = false, // ロック
LockoutCounter = 0, // ロックカウンター
LoginExpirationLimit = "2025-12-31", // ログインの有効期限
LoginExpirationPeriod = 365, // ログインの有効期限期間(日数)
};
string json = System.Text.Json.JsonSerializer.Serialize(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(apiUrl, content);
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Status: {(int)response.StatusCode}, Result: {result}");
}
🔚 まとめ
PleasanterのAPIを活用する際、公式マニュアルに記載されていない項目も設定できる可能性があります。
運用や一括登録でユーザー設定を自動化したい方は、/api/users/getで取得できる値を参考にすると意外と柔軟な設定ができるかもしれません。
ただし、今後のバージョンアップで仕様が変更される可能性もあります。
🙌 最後に
この情報が、Pleasanterで業務自動化やユーザー管理をされている方のお役に立てば幸いです。
📚思い出
6~7年程前だっただろうか。当時プリザンターを触ってテストした時、この記事を内容を実施していたという記憶が炙り絵の様にうっすらと浮かび上がり、記事を書き切った後に思い出した。