Garoon SOAP APIの共通仕様
Garoon SOAP APIの概要
Garoon SOAP APIでは、SOAPを使用してGaroonと他システムの連携します。
Garoon SOAP APIの定義は、WSDL(Web Service Definition Language)によって記述されています。
Garoon SOAP APIの定義は、次のURLで確認できます。
環境に合わせてそれぞれ以下を置き換えてください。
-
IP_ADDRESS_OR_HOST_NAME:Garoonのインストール先のIPアドレスまたはホスト名 -
INSTALL_IDENTIFER:Garoonのインストール識別子 -
クラウド版Garoon:
https://sample.cybozu.com/g/index.csp?WSDL -
パッケージ版:
以下は、ヘルプに記載しているディレクトリ構成( Windows/ Linux
)でインストールしたときの例です。
インストールするディレクトリを変更している場合は、パスを読み替えてください。- Windows環境:http://
IP_ADDRESS_OR_HOST_NAME/scripts/INSTALL_IDENTIFER/grn.exe?WSDL - Linux環境:http://
IP_ADDRESS_OR_HOST_NAME/cgi-bin/INSTALL_IDENTIFER/grn.cgi?WSDL
- Windows環境:http://
Garoon SOAP APIでは、SOAPとWSDLの次のバージョンを使用します。
- SOAP:1.2
- WSDL:1.1
SOAPでは、XMLに基づいたメッセージを通信します。Garoon SOAP APIでのリクエストとレスポンスの例を次に示します。
なお、リクエストやレスポンスにおける文字列のエスケープについては、
XMLの仕様
を参照してください。
リクエスト例
|
|
|
|
レスポンス例
|
|
|
|
認証
Garoon SOAP APIを使用するには、Garoonに登録されたユーザーでの認証が必要です。
認証方式には、以下の2種類があります。
- Cookieを使用した認証方式
- WS-Security(Web Services Security)を使用した認証方式
APIを高頻度で実行する場合は、「Cookieを使用した認証方式」を利用してください。
また、同時接続数の制限については、以下のリンクを参照してください。
同時接続数
Cookieを用いた認証方式
セッションIDをCookieとしてリクエストに含めることで、認証します。
セッションIDの取得には次の2つの方法があります。
ただし、2要素認証を有効にしたユーザーアカウントの場合は、2の方法のみ利用できます。
- Util APIの UtilLogin でログインし、セッションIDを取得する。
- ブラウザーでGaroonにログインし、セッションIDを取得する。
次に、UtilLoginでセッションIDを取得する際のリクエスト例とレスポンス例を示します。
UtilLoginの詳細については、
連携API
を参照してください。
リクエスト例
|
|
|
|
レスポンス例
|
|
|
|
レスポンス内の「CBSESSID」がCookie名、および「bmun236bhoifeu2cov6badrh0cs0s1af」がCookie値です。
Garoon SOAP APIのリクエストにCookieを含めることで、WS-Securityによる認証は不要になり、リクエストからログイン名とパスワードを省けます。
Garoon SOAP APIリクエストにCookieを含める場合、Cookie名は以下です。
- クラウド版Garoon:JSESSIONID |
- パッケージ版Garoon 3.0以降:CBSESSID
また、Garoon SOAP APIのリクエストにCookieを含める場合は、次のようにリクエストヘッダーに含めます。
例:クラウド版Garoonで、「UtilGetREquestToken」を実行した場合の例
|
|
|
|
WS-Securityを用いた認証方式
ログイン名とパスワードをSOAPヘッダーに含めることによって認証します。 この認証方式では、リクエストごとに認証する必要があります。下記例の「Security」要素が該当の箇所です。
2要素認証を設定したcybozu.comユーザーアカウントでは、WS-Securityを用いた認証方式でSOAP APIを利用できません。
リクエスト例
|
|
SAML認証を設定している場合
SAML認証を設定している環境でも、この記事で案内している認証方式を使ってGaroon SOAP APIを利用できます。
ただし、WS-Securityを用いた認証方式の場合には、cybozu.comのログイン名とパスワードを指定してください。
「
ログイン時にSAML認証だけを使うように制限する
」を有効にした場合には、WS-Securityを用いた認証方式で実行できるユーザーは、cybozu.com共通管理者だけに制限されます。
Basic認証
Basic認証
を設定している場合、リクエストヘッダーに「Authorization」ヘッダーを指定します。
ヘッダーの値は「Basic 」と「Basic認証のユーザー名:Basic認証のパスワードをBase64エンコードした値」を結合した値です。
たとえば、ログイン名が「cybozu」でパスワードが「password」の場合、リクエストヘッダーには次の値を指定します。
|
|
タイムゾーン
Garoon SOAP APIでは、時刻にISO-8601規格のUTC表記を使用します。
例:2010-01-11T01:00:00Z
UTC以外のタイムゾーンを指定した場合も、UTCとして扱われます。
たとえば、「2010-01-11T01:00:00+09:00」を指定した場合は、「2010-01-11T01:00:00Z」を指定した時と同じ結果になります。
ローカライズ
受け取るエラーメッセージの言語をSOAPヘッダーで指定できます。
指定できる言語は、日本語(ja)、英語(en)、中国語(簡体字)(zh)、中国語(繁体字)(zh-tw)のいずれかです。
ただし、Language Pack未適応のパッケージ版3.0, 3.1のGaroonでは中国語を使用できません。下記例の「Locale」要素が該当の箇所です。
リクエストトークンが必要なAPI ではLocaleに設定された値よりも「ユーザーが設定している言語」が優先されます。(パッケージ版Garoon3.5以降、クラウド版Garoon)
例
|
|
データのバージョン
Garoon SOAP APIのパラメーターで使用する「version」とは、更新日時のUNIXタイムスタンプです。APIによっては、versionを使用することによって特定の時刻からの更新状況を取得できます。
リクエスト例
|
|
レスポンス例
|
|
更新情報取得API
予定やメッセージ、ユーザー情報などの、Garoon内で扱う各データの更新情報を、APIで取得できます。
たとえば、ユーザーの更新情報を取得したい場合、「BaseGetUserVersions」というAPIで取得します。
これらの更新情報を取得するAPIを利用する際、ユーザーがアクセスできるデータすべての更新情報を返す点に注意してください。
たとえば、BaseGetUserVersionsではGaroon内の全ユーザーの更新情報を取得します。
場合によっては、レスポンスの受信に時間がかかることがあります。
エラー処理
Garoon SOAP APIでは、エラーが発生したときにエラーの内容を含んだXMLが返ります。
ネットワークなど、Garoon以外で障害が発生したときは、XMLレスポンスを取得できません。
エラーレスポンスの例
|
|
エラーメッセージ
すべてのAPIに共通して発生するエラーメッセージについて記述します。各API固有のエラーメッセージについては、各APIの詳細を確認してください。
| エラー番号 | 説明 |
|---|---|
| GRN_CBPAPI_63004 | 必要なリクエストパラメーターが不足している場合 |
| GRN_CBPAPI_63006 | 必要なライセンスの期限が切れている場合 |
| GRN_CMMN_00005 | API実行ユーザーが実行権限のない処理を実行した場合 |
アクセス権
連携APIにおけるGaroonとの連携機能では、Garoon本体に準拠したアクセス権を判定しています。
APIを実行するユーザーがアクセス権を与えられていない処理を行った場合、Garoon本体と同様のアクセス権違反エラーが発生します。
リクエストトークン
セッションで認証してAPIを使用する場合は、リクエストトークンを取得する必要があります。これは、CSRF(クロスサイトリクエストフォージェリ)対策のためです。リクエストトークンはUtilAPIの「UtilGetRequestToken」で取得できます。 このAPIで取得できるトークンは固定トークンで、同一セッション内において使い回すことが可能です。セッションもしくはトークンが不正な場合、「FW00007」エラーが返されます。本エラーが出力された場合は、リクエストトークンを取得し直し、最新のトークンを利用してください。
パッケージ版Garoon 3.5より前のパッケージ版Garoonではリクエストトークンは不要です。
APIのバージョン
Garoon SOAP APIのバージョンは、レスポンスヘッダーのapiversionで確認できます。
GaroonのバージョンによってAPIバージョンが異なります。
クラウド版
プロダクトの内部バージョン番号と同じです。
内部バージョン番号は、レスポンスヘッダーのversionで確認できます。
パッケージ版
- パッケージ版3.0:1.0.0
- パッケージ版3.1:1.1.0
- パッケージ版3.5:1.2.0
- パッケージ版3.7.0〜3.7.2:1.3.0
- パッケージ版3.7.3〜3.7.5:1.3.1
- パッケージ版4.0:1.4.0
- パッケージ版4.2:1.6.0
- パッケージ版4.6:1.11.0
- パッケージ版4.10:1.12.0
- パッケージ版5.0以降:プロダクトの内部バージョン番号と同じです。
内部バージョン番号は、レスポンスヘッダーの
versionで確認できます。
APIを実行できるユーザーの指定(パッケージ版のみ)
パッケージ版のGaroonでは、設定ファイルを編集して、APIの実行を許可するロールを指定できます。
初期設定では、ユーザーのロールによって実行できるAPIが異なります。
- Administratorsロールをもつユーザー:すべてのAPI
- その他のユーザー:システム管理系のAPIを除くAPI
クラウド版Garoonでは、ロールの指定は不要です。
すべてのユーザーがすべてのAPI(Admin APIの一部を除く)を使用できます。
実行権限を持たないユーザーでAPIを実行したとき、APIはエラー(GRN_CMMN_00005)が返ります。
設定ファイル
CGI_DIRECTORY_PATH/INSTALL_IDENTIFER/common.ini
CGI_DIRECTORY_PATHは環境に応じて置き換えてください。
例
- Windows環境の場合:
C:¥Inetpub¥scripts¥cbgrn¥common.ini - Linux環境の場合:
/var/www/cgi-bin/cbgrn/common.ini
設定内容
実行権限をもつロールは、次のように設定します。
- 「admin」で始まるAPI(システム管理者用のAPI):「sysapi_roles」
- 「util」で始まるAPIを除く(通常ユーザー用のAPI):「papi_roles」
|
|
パラメーター名、リクエスト、およびレスポンスの説明の見方
各アプリケーションのAPIの説明における、パラメーター名、リクエスト、およびレスポンスの説明の見方を説明します。
パラメーター名
APIのリクエストとレスポンスで使用されるパラメーターの説明では、パラメーター名を「XML Path Language(XPath)」で記述しています。 リクエストの場合、parameters要素からのXPathを、レスポンスの場合、returns要素からのXPathでパラメーター名を記述しています。
例
|
|
上記例はBase APIの「BaseGetUserVersions」APIのレスポンスです。
この場合、returns要素(リクエストの場合、parameters要素)の子ノード「user_item」の「id」という名前の属性ノードをXPath表現で記述すると、「user_item/@id」となります。
リクエストとレスポンス
APIのリクエストとレスポンスの例を示すときは、リクエストの場合parameters部分、レスポンスの場合はreturns部分のみを抜き出して記述します。
例:リクエスト
|
|
例:レスポンス
|
|
制限事項
同時接続数
同時にリクエストできるAPIは、1ドメインにつき100までです。
上限を超えるアクセスがあった場合、利用を制限させていただく場合がございます。
添付ファイルのアップロード
Garoon SOAP APIを利用して添付ファイルをアップロードする場合、アップロード可能なファイルサイズの上限は、Base64エンコード後の状態で300MBです。
Garoonのシステム設定で、ファイルサイズの上限値を「無制限」に設定している場合も同様です。
添付ファイルのダウンロード
Garoon SOAP APIを利用して添付ファイルをダウンロードするときのファイルサイズの上限は、Base64エンコード後のファイルサイズが200MB程度まです。
その他の制限事項
サービスに関する制限事項は、
サイボウズのクラウドサービス制限事項
を参照してください。
