Garoon のデータは API でどこまで取り出せるか
2026年10月9日(試用環境での確認は 2026年10月5日)
結論から書きます。 管理者権限の連携用ユーザー1つで、ワークフローの全申請(入力項目の値と承認経路まで)と、全員のメッセージ本文は取れます。 予定は利用者ごとに回せば公開の予定を取れますが、非公開の予定は管理者にも返りません。 ファイル管理は 最新版しか取り出せません。 書き戻しはできますが、作成者と作成日時の指定は黙って無視されます。 Garoon クラウド版の30日試用環境で、実際にデータを作って・消して確かめた記録です。
確かめた環境
- Garoon クラウド版(cybozu.com)の30日試用環境
- 連携用ユーザー:cybozu.com 共通管理者の権限を付けた専用ユーザー。パスワード認証(REST は
X-Cybozu-Authorization、SOAP は WS-Security) - OAuth は使っていません。OAuth のスコープ一覧に掲示板・メッセージ・スペースが無いためです
結果の一覧
| アプリ | 取得 | 削除に気づけるか | 書き戻し |
|---|---|---|---|
| ワークフロー | 管理者用 REST で全申請。入力項目の値・承認経路・申請者まで | 全申請の ID を毎日突き合わせる | 不可(申請を作る API が無い) |
| メッセージ | 管理者用 REST で全件の一覧。宛先でないメッセージの本文も取れた | ID の突き合わせ。SOAP の MessageGetThreadVersions も remove を返す(宛先・差出人の分だけ) | 可(差出人は連携用ユーザーになる) |
| スケジュール | 利用者ごとに target を指定して公開の予定。非公開は返らない | ID の突き合わせ。ScheduleGetEventVersions も remove を返す(参加している予定だけ) | 可(登録者は連携用ユーザーになる) |
| 掲示板 | カテゴリーの木は SOAP、掲示の本文は REST、コメントと添付は SOAP | BulletinGetTopicVersions が remove を返した | 可(カテゴリーへの書き込み権限が要る) |
| ファイル管理 | SOAP だけ。ダウンロードは最新版のみ | 一覧の突き合わせ(*Versions が無い) | 可(フォルダーへの書き込み権限が要る) |
つまずいたところ
メールアドレスをログイン名にしたユーザーで、Garoon の API だけが通らない
ログイン名がメールアドレスのユーザーで、cybozu.com 共通の User API は 200 が返るのに、
Garoon の REST は 401 GRN_REST_API_00001、SOAP は FW00007 になりました。
@ を含まない専用ユーザーを作ったところ、両方とも通りました。原因は確定していませんが、連携用ユーザーは @ を含まないログイン名にするのが安全です。
作ったばかりのユーザーは、一度ログインしてパスワードを変えるまで API が使えない
管理者が設定したパスワードに「次回ログイン時に変更を要求」が効いていると、API は SLASH_PA02 A new password is required. を返します。
ユーザーごとにこの設定を外す項目はありませんでした。作成後に一度ブラウザでログインし、パスワードを変更する必要があります。
掲示板のカテゴリーは、REST ではルートの子までしか見えない
REST の GET /bulletin/categories はルートだけを返し、子は hasSubCategories: true だけでした。
カテゴリーの木の全体は SOAP の BulletinGetCategories で取ります。
掲示の一覧はカテゴリーごとに REST の GET /bulletin/categories/{id} で取れます。
掲示板とファイル管理は、初期設定では「閲覧のみ」
どちらも初期のアクセス権は全員「閲覧のみ」で、管理者でも書き込めませんでした
(掲示板 GRN_BLLT_16051、ファイル管理 GRN_CBNT_17009)。
取得だけなら設定の変更は要りません。書き戻すときは、戻し先に書き込み権限を付ける必要があります。
ファイル管理の古い版は、API では取り出せない
ファイルを更新して第2版を作ると、CabinetGetFileInfo の版の履歴には 1 と 2 が並びます。
ところが CabinetFileDownload に version="1" を付けても無視され、第2版が返りました。
Garoon の画面に古い版が残っていても、外からは最新版しか取れません。
古い版を残したければ、版が上がった日のうちに取っておくしかありません。
作成者と作成日時の指定は、エラーにならずに無視される
予定とメッセージを REST で作るときに creator と createdAt を付けても、
201 が返り、作成者は API を実行したユーザー、作成日時は現在時刻になりました。
書き戻したデータは「連携用ユーザーが今作ったもの」になるので、元の作成者と日時は本文に書き残す必要があります。
メッセージの削除は REST に無い
REST にあるのは管理者による添付の削除だけです。メッセージそのものは SOAP の MessageRemoveThreads で消します。
このとき folder_id が必須で、フォルダーの ID はユーザーごとに違います。
MessageGetFoldersById で folder_type="sent" のフォルダーを引いてから使います。
取れないもの
- 非公開の予定(管理者にも一覧に出ない)
- メッセージのコメント(SOAP で、連携用ユーザーが宛先か差出人のものだけ)
- スペースのディスカッションのコメント(取得する API が無い)
- ファイル管理の古い版
- ワークフローの申請を Garoon に作り直すこと
この結果をもとに作ったもの
上の範囲を毎日取得し、前日と比べて消えたものを知らせ、消える前の内容を取り出す仕組みを トキモドシ for Garoon として提供しています。 移行で何を失うかは「Garoon をクラウド版に移行すると、誤って消したデータは自社では戻せなくなる」に、 実際に消したときに管理者が見る画面はデモにあります。