Skip to main content

Open API

概要

SERVICEME Open API 呼び出しの基本的な流れ:

第一歩、認証章で提供されるインターフェースを使用して認証を行い、access tokenを取得する

認証は2種類に分かれます。1つはユーザー認証、もう1つはクライアント認証です。

  • ユーザー認証:個人アカウントの身分に基づく認証方法。
  • クライアント認証:SERVICEMEが発行したクライアントcodeとsecretを用いた認証方法。

第二歩、access tokenを携帯して対応するAPIを呼び出す

認証方式

ユーザーAAD認証

この方式はユーザー認証の一種であり、AADのaccess tokenを身分認証の根拠として使用します。

  • AAD access token 取得方法:

    AAD と React 統合ドキュメント:前往->

    AAD と .Net 統合ドキュメント:前往->

    AAD と Java 統合ドキュメント:前往->

  • インターフェースアドレス:/openapi/auth/user/aad

  • リクエスト方式:post

  • リクエストbody:

パラメータ名必須タイプパラメータ説明
tokenはいstringユーザーAAD access token(連携先が提供)
  • インターフェースリクエスト例:
curl --location 'https://localhost/openapi/auth/user/aad' \
--header 'Content-Type: application/json' \
--data '{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlhSdmtvOFA3QTNVYVdTblU3Yk05blQwTWpoQSJ9.eyJhdWQiOiIzZTEwNjVhYS1jZWYxLTRiYTgtOWRiOS1kMWQ1Y2UzMGYyZDgiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNDRjMjRmNDItZDQ5Yi00MT......"
}'
  • レスポンスbody:
パラメータ名サブパラメータタイプパラメータ説明
dataobjectレスポンスデータ
access_tokenstringSERVICEMEシステムのaccess token
expires_innumber有効期限(分単位)
successboolean成功したかどうか
msgstringsuccessがfalseの場合にエラーメッセージが入る
  • レスポンス例:
{
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc0V4dGVybmFsIjpmYWxzZSwidXNlcklkIjoiNDAzMDUwMjEwMTEyODgzOTE2OCIsImFjY291bnQiOiJlY210cmlhbEBzZXJ2aWNlbWUub25taWNyb3NvZ......",
"expires_in": 1440
},
"success": true,
"msg": ""
}

クライアントとユーザーアカウント認証

この認証方式はクライアント認証とユーザーアカウント認証を組み合わせたものです。ユーザーアカウントで身分認証を行い、同時にクライアント資格情報(client idとsecret)を使用してインターフェース呼び出しの安全性を確保します。このインターフェースを呼び出す際には署名検証が必要です。

  • clientとsecretはどうやって取得する?

システム管理者はクライアント管理画面{domain}#/super-admin/client-managementで資格情報を作成し、作成後にclient idとsecretを取得できます。

  • インターフェースアドレス:/openapi/auth/client_with_account

  • リクエスト方式:post

  • リクエストbody:

パラメータ名必須タイプパラメータ説明
clientはいstringクライアントId
accountはいstringユーザーアカウント(ユーザー管理のUserNameに対応)
timestampはいnumberタイムスタンプ(13桁の数字、ミリ秒単位の精度、例:1711537596897)
nonceはいstring6桁のランダム文字列(数字または英字の組み合わせ可)
signatureはいstring署名、5分以内有効(署名フォーマット:コロンで連結した後にMD5 client:{client}secret:{secret}account:{account}timestamp:{timestamp}nonce:{nonce} を計算し、MD5の32桁小文字文字列)
  • javascript署名例:

    新規にhtmlファイルを作成し、以下の内容を貼り付けてブラウザで開いてください

    <html>
    <head>
    <style>
    .box {
    width: 100%;
    height: 100%;
    padding: 50px 50px;
    }
    .row {
    display: flex;
    height: 50px;
    width: 100%;
    }
    .col1 {
    flex: 1;
    }
    .col2 {
    flex: 3;
    }
    </style>
    </head>
    <body>
    <div class="box">
    <div class="row">
    <div class="col1">client:</div>
    <div class="col2" id="client"></div>
    </div>
    <div class="row">
    <div class="col1">secret:</div>
    <div class="col2" id="secret"></div>
    </div>
    <div class="row">
    <div class="col1">account:</div>
    <div class="col2" id="account"></div>
    </div>
    <div class="row">
    <div class="col1">timestamp:</div>
    <div class="col2" id="timestamp"></div>
    </div>
    <div class="row">
    <div class="col1">nonce:</div>
    <div class="col2" id="nonce"></div>
    </div>
    <div class="row">
    <div class="col1">signature:</div>
    <div class="col2" id="signature"></div>
    </div>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
    <script>
    const client = "openapi"
    const secret = "DzYwyICrKbUCEseYthCK0PfSfX7NPEuV"
    const account = "test@serviceme.com"
    const timestamp = +new Date()
    const nonce = "123abc"
    const message = `client:${client}secret:${secret}account:${account}timestamp:${timestamp}nonce:${nonce}` // 署名の原文
    const md5Hash = CryptoJS.MD5(message).toString().toLowerCase(); // MD5 32桁小文字変換

    console.log(`署名原文:${message}`)
    console.log(`署名結果:${md5Hash}`)

    document.getElementById('client').innerText = client;
    document.getElementById('secret').innerText = secret;
    document.getElementById('account').innerText = account;
    document.getElementById('timestamp').innerText = timestamp;
    document.getElementById('nonce').innerText = nonce;
    document.getElementById('signature').innerText = md5Hash;
    </script>
    </body>
    </html>
  • インターフェースリクエスト例:

curl --location 'https://localhost/openapi/auth/client_with_account' \
--header 'Content-Type: application/json' \
--data '{
"client": "openapi",
"account": "test@serviceme.com",
"timestamp": 1711537596456,
"nonce": "123abc",
"signature": "182be0c5cdcd5072bb1864cdee4d3d6e"
}'
  • レスポンスbody
パラメータ名サブパラメータタイプパラメータ説明
dataobjectレスポンスデータ
access_tokenstringSERVICEMEシステムのaccess token
expires_innumber有効期限(分単位)
successboolean成功したかどうか
msgstringsuccessがfalseの場合にエラーメッセージが入る
  • インターフェースレスポンス例:
{
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc0V4dGVybmFsIjpmYWxzZSwidXNlcklkIjoiNDAzMDUwMjEwMTEyODgzOTE2OCIsImFjY291bnQiOiJlY210cmlhbEBzZXJ2ub25ta......",
"expires_in": 1440
},
"success": true,
"msg": ""
}

チャット

Agentへメッセージを送信

  • インターフェースアドレス:/openapi/chat/expert

  • リクエスト方式:post

  • リクエストheader:

パラメータ名必須タイプパラメータ説明
AuthorizationはいstringSERVICEME access tokenを記入、値の形式:openapi {access_token}
  • リクエストbody:
パラメータ名必須タイプパラメータ説明
expertCodeはいstringSERVICEMEシステム内のAgentコード(SERVICEMEシステム参照)
contentはいstring質問内容
sessionIdいいえstringセッションID、チャットコンテキストを表す。nullを渡すと新しいセッションを開始。新しいセッションIDはレスポンスで返され、2回目以降の質問からは前回返されたsession idを携帯して続行する必要がある
streamいいえbooleanストリーミングを有効にするか(true:有効;false:無効)、デフォルトは無効
includeThoughtいいえbooleanレスポンスに思考を含めるか(true:含む;false:含まない)
languageいいえobject今回のチャットの言語設定
language.chatLanguageいいえstringAIにどの言語で回答してほしいか。空の場合はAIが自動判断
language.systemLanguageいいえstringセッションの基本言語。プラグイン名やプロンプトに影響するが、AIの回答には影響しない。空の場合はen-US。chatLanguageが指定されるとchatLanguageが優先される

質問コードはどうやって取得する? 下図を参照してください:

img

  • リクエスト例:
curl --location 'https://localhost/vee/openapi/chat/expert' \
--header 'Authorization: openapi {access_token}' \
--header 'Content-Type: application/json' \
--data '{
"expertCode": "CHATES",
"content": "加班申请",
"sessionId": null,
"stream": false,
"includeThought": true,
"language": { "chatLanguage" : null, "systemLanguage" : "zh-CN"}
}'
  • レスポンスbody:
パラメータ名サブパラメータサブサブパラメータ4階層目タイプパラメータ説明
dataobjectレスポンスデータ
chatRecordIdstring会話記録ID
sessionIdstringセッションID
contentstringテキスト形式の回答情報
mediasobjectメディア形式の回答情報配列(画像やファイルなど)
typestringimage:画像;file:ファイル
namestring名称
suggestionQuestionsarray string推奨質問
thoughtsarray思考
thoughtstring思考内容
pluginNamestringプラグイン名
elapsedTimeobjectプラグイン処理時間情報
modelfloatモデル処理時間
actionfloatアクション処理時間
totalfloat合計処理時間
statestring状態(success:成功)
finish_reasonstring回答終了かどうか。stopの場合は終了、回答中はnull
successboolean成功したかどうか
msgstringsuccessがfalseの場合にエラーメッセージが入る
  • 非ストリーミングレスポンス例:
{
"data": {
"chatRecordId": "4299234148041625600",
"sessionId": "4292755814873047040",
"content": "チームリーダーは作業タスクを発行し、完了ノードや検収基準を明確にします。従業員は上司と合意した後に残業可能です。残業終了後、従業員は工数システムに残業時間を記入し、システムで残業申請を提出します。備考には残業タスクを明確に記載し、勤務場所での出退勤記録を完全に記録します。チームリーダー/上司が残業成果を検収し、残業申請を承認します。HRは打刻記録を確認後、代休休暇の計算を行います。",
"medias": [
{
"type": "image",
"name": null,
"url":"http://localhost:3978/openapi/chat/media/image/FE680A9CCFB1B56E80737FB28562DC33F4A37DEF52A65F046464788B83E0BE77"
},
{
"type": "file",
"name": "答案参考文件.pdf",
"url":"https://localhost/#/share/preview?fileId=4268457334348447744&objectType=2&previewType=file&mode=login"
},
],
"suggestionQuestions": [],
"thoughts": [
{
"thought": "この質問に答えるために、ナレッジベースの関連情報を検索する必要があります。",
"pluginName": "Search Knowledgebase",
"elapsedTime": {
"model": 3612.4722,
"action": 689.5891,
"total": 4302.0613
},
"state": "success"
}
],
"finish_reason": "stop"
},
"success": true,
"msg": ""
}
  • ストリーミングレスポンス例:
data: {"data":{"chatRecordId":"4299228743576059904","sessionId":"4292755079242457089","content":"","medias":[],"suggestionQuestions":[],"thoughts":[{"thought":"この質問に答えるために、ナレッジベースの関連情報を検索する必要があります。","pluginName":"Search Knowledgebase","elapsedTime":{"model": 3612.4722,"action": 689.5891,"total": 4302.0613},"state": "success"}],"finish_reason":null},"success":true,"msg":""}

data: {"data":{"chatRecordId":"4299228743576059904","sessionId":"4292755079242457089","content":"チームリーダーは作業タスクを発行し、完了ノードや検収基準を明確にします。従業員は上司と合意した後に残業可能です。残業終了後、従業員は工数システムに残業時間を記入し、システムで残業申請を提出します。備考には残業タスクを明確に記載し、勤務場所での出退勤記録を完全に記録します。チームリーダー/上司が残業成果を検収し、残業申請を承認します。HRは打刻記録を確認後、代休休暇の計算を行います。","medias":[],"suggestionQuestions":[],"thoughts":[],"finish_reason":null},"success":true,"msg":""}

data: {"data":{"chatRecordId":"4299228743576059904","sessionId":"4292755079242457089","content":"","medias":[{"type":"image","name":null,"url":"http://localhost:3978/openapi/chat/media/image/FE680A9CCFB1B56E80737FB28562DC33F4A37DEF52A65F046464788B83E0BE77"}],"suggestionQuestions":[],"thoughts":[],"finish_reason":null},"success":true,"msg":""}

data: {"data":{"chatRecordId":"4299228743576059904","sessionId":"4292755079242457089","content":"","medias":[{"type":"file","name":"答案参考文件.pdf","url":"https://localhost/#/share/preview?fileId=4268457334348447744&objectType=2&previewType=file&mode=login"}],"suggestionQuestions":[],"thoughts":[],"finish_reason":"stop"},"success":true,"msg":""}

会話の参考資料を取得

  • インターフェースアドレス:/openapi/chat/record/{chatRecordId}/reference

  • リクエスト方式:get

  • リクエストheader:

パラメータ名必須タイプパラメータ説明
AuthorizationはいstringSERVICEME access tokenを記入、値の形式:openapi {access_token}
  • リクエストurlパラメータ:
パラメータ名必須タイプパラメータ説明
chatRecordIdはいstring質問応答インターフェースのchatRecordIdフィールドの値
  • リクエスト例:
curl --location 'http://localhost/openapi/chat/record/4299234148041625600/reference' \
--header 'Authorization: openapi {access_token}'
  • レスポンスbody:
パラメータ名サブパラメータタイプパラメータ説明
dataobject arrayレスポンスデータ
titlestringタイトル
contentstring会話記録で引用された断片内容
scorefloat関連度(0から1、1に近いほど関連性が高い)
urlstringリンク(現在はファイルタイプの引用のみリンクあり)
typestringタイプ列挙:document(文書)、image(画像)、QnA、other
successboolean成功したかどうか
msgstringsuccessがfalseの場合にエラーメッセージが入る
  • レスポンス例:
```json
{
"data": [
{
"title": "会社の行政制度.pdf",
"content": "断片一 ......",
"score": 0.95,
"url": "https://localhost/#/share/preview?fileId=4268457334348447744&objectType=2&previewType=file&mode=login",
"type": "document"
},
{
"title": "会社の行政制度.pdf",
"content": "断片二 ......",
"score": 0.81,
"url": "https://localhost/#/share/preview?fileId=4268457334348447744&objectType=2&previewType=file&mode=login",
"type": "document"
},
{
"title": "会社の行政制度.pdf",
"content": "断片三 ......",
"score": 0.76,
"url": "https://localhost/#/share/preview?fileId=4268457334348447744&objectType=2&previewType=file&mode=login",
"type": "document"
}
],
"success": true,
"msg": ""
}

Botインターフェース

Bot作成インターフェース

基本情報

  • リクエスト方式:POST
  • インターフェースURL:/openapi

リクエストパラメータ

パラメータ名タイプ説明
codeStringBotコード、一意、最大長50
coverStringカバー画像パス(任意)
namesArray(TranslationInfo)名前の多言語対応、必須;各要素は languageCodecontent を含む
welcomesArray(TranslationInfo)ウェルカムメッセージの多言語対応;各要素は languageCodecontent(システム制限あり)を含む
descriptionsArray(TranslationInfo)説明の多言語対応;上記と同様
historyRecordNumberNumber履歴メッセージの最大件数
feedbackBooleanフィードバックの有効化
recoreChatBoolean会話の記録有無
useSuggestedQuestionsBoolean推奨質問の有効化
useKnowledgeBaseBooleanナレッジベースの有効化
sortNumberソート順
chatModelIdNumber(Int64)チャットモデルID
chatPromptStringチャットシステムのプロンプト
temperatureNumber温度係数(0〜2)
topPNumberTopP(0〜1)
toolsArray(BotPluginToolVO)ボットツールリスト(各項目は少なくとも id=プラグインIDを含む)
knowledgeInfoObject(BotKnowledgeVO)ナレッジベース設定、例:workspaces: Array(Int64) ワークスペースIDリスト
dataSourcesArray(String)データソース識別子集合

リクエストパラメータ例(Body):

{
"code": "qa-bot",
"cover": "/images/bots/qa.png",
"names": [
{ "languageCode": "zh-CN", "content": "问答机器人" },
{ "languageCode": "en-US", "content": "Q&A Bot" }
],
"welcomes": [
{ "languageCode": "zh-CN", "content": "您好!我可以帮您解答问题。" },
{ "languageCode": "en-US", "content": "Hi! I can help answer your questions." }
],
"descriptions": [
{ "languageCode": "zh-CN", "content": "用于通用问答的机器人" },
{ "languageCode": "en-US", "content": "A bot for general Q&A" }
],
"historyRecordNumber": 10,
"feedback": true,
"recoreChat": true,
"useSuggestedQuestions": false,
"useKnowledgeBase": true,
"sort": 1,
"chatModelId": 4493000000000000001,
"chatPrompt": "你是一个专业助手,请用简体中文回答用户问题。",
"temperature": 0.7,
"topP": 0.95,
"tools": [
{ "id": 4488000000000001001 },
{ "id": 4488000000000001002 }
],
"knowledgeInfo": {
"workspaces": [4493061452348784640, 4493061452348784641]
},
"dataSources": ["kb", "faq"]
}

cURL例:

curl -X POST "https://<host>/openapi" ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer <token>" ^
-d "{ \"code\": \"qa-bot\", \"names\": [ { \"languageCode\": \"zh-CN\", \"content\": \"问答机器人\" } ], \"welcomes\": [ { \"languageCode\": \"zh-CN\", \"content\": \"您好!\" } ], \"descriptions\": [ { \"languageCode\": \"zh-CN\", \"content\": \"用于通用问答的机器人\" } ], \"historyRecordNumber\": 10, \"feedback\": true, \"recoreChat\": true, \"useSuggestedQuestions\": false, \"useKnowledgeBase\": true, \"sort\": 1, \"chatModelId\": 4493000000000000001, \"chatPrompt\": \"你是一个专业助手。\", \"temperature\": 0.7, \"topP\": 0.95, \"tools\": [ { \"id\": 4488000000000001001 } ], \"knowledgeInfo\": { \"workspaces\": [4493061452348784640] }, \"dataSources\": [\"kb\"] }"

注:

  • code はグローバルに一意である必要があります。重複するとエラーが返されます。

レスポンス

パラメータ名タイプ説明
dataString新規作成されたボットID
successBooleanインターフェース呼び出し結果(true=成功、false=失敗)
msgStringメッセージ

レスポンス例:

{ "data": "4493061452348784640", "success": true, "msg": "" }

## ファイルスペース

### 単一ファイルアップロード

- **インターフェースURL:**```v1/openapi/workspace/file/upload```

- **リクエスト方式:**```post```

- **リクエストヘッダー:**

| パラメータ名 | 必須 | タイプ | 説明 |
| ------------- | ---- | ------ | ------------------------------------------------------------ |
| Authorization | は | string | SERVICEMEアクセストークンを記入、形式:openapi `{access_token}` |

- **Content Type:**```form-data```
- **リクエストボディ:**

| パラメータ名 | 必須 | タイプ | 説明 |
| ------------------ | ---- | ------ | -------------------------------------- |
| workspace | は | string | ファイルスペース |
| file | は | file | ファイル(単一) |
| eponymousCover | 任意 | bool | 同名ファイルが存在する場合に上書きするか(デフォルトは上書きしない) |

- **リクエスト例:**

```shell
curl --location 'http://localhost/v1/openapi/workspace/file/upload' \
--header 'Authorization: openapi {access_token}' \
--form 'workspace="テストスペース"' \
--form 'file=@"/C:/test.doc"' \
--form 'eponymousCover="false"'
  • レスポンスボディ:
パラメータ名サブパラメータタイプ説明
dataobjectレスポンスデータ
fileIdstringファイルID
fileNamestringファイル名
uploaderstringアップロード者
successboolean成功したかどうか
msgstringsuccessがfalseの場合、エラーメッセージが入る
  • レスポンス例:
{
"data": {
"fileId": "4345229404125790208",
"fileName": "test.doc",
"uploader": "test@serviceme.com"
},
"success": true,
"msg": ""
}

ファイルスペース

複数ファイルアップロード

ファイル提出

  • インターフェースURL:v1/openapi/workspace/file/upload/batchSubmit

  • リクエスト方式:post

  • リクエストヘッダー:

パラメータ名必須タイプ説明
AuthorizationstringSERVICEMEアクセストークンを記入、形式:openapi {access_token}
  • Content Type:form-data
  • リクエストボディ:
パラメータ名必須タイプ説明
workspacestringファイルスペース
filesfileファイル(複数)
eponymousCover任意bool同名ファイルが存在する場合に上書きするか(デフォルトは上書きしない)
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/workspace/file/upload/batchSubmit' \
--header 'Authorization: openapi {access_token}' \
--form 'workspace="テストスペース"' \
--form 'files=@"/C:/test1.doc"' \
--form 'files=@"/C:/test2.docx"' \
--form 'eponymousCover="false"'
  • レスポンスボディ:
パラメータ名サブパラメータタイプ説明
dataobjectレスポンスデータ
stateIdstringアップロード状態ID。これを使って最新のアップロード結果をポーリング可能
successboolean成功したかどうか
msgstringsuccessがfalseの場合、エラーメッセージが入る
  • レスポンス例:
{
"data": {
"stateId": "4345229404125790208"
},
"success": true,
"msg": ""
}

アップロード結果の照会

  • インターフェースURL:v1/openapi/workspace/file/upload/batchSubmit/{stateId}

  • リクエスト方式:get

  • リクエストヘッダー:

パラメータ名必須タイプ説明
AuthorizationstringSERVICEMEアクセストークンを記入、形式:openapi {access_token}
  • URLパラメータ:
パラメータ名必須タイプ説明
stateIdstring複数ファイル提出アップロードインターフェースから返されたstateId
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/workspace/file/upload/batchSubmit/4345227891722682368' \
--header 'Authorization: openapi {access_token}'
  • レスポンスボディ:
パラメータ名サブパラメータタイプ説明
dataobject配列レスポンスデータ
fileIdstringファイルID
fileNamestringファイル名
statestring状態列挙:underway(処理待ち)、success(成功)、fail(失敗)
uploaderstringアップロード者
errorMsgstring状態がfailの場合、失敗理由が格納される
finishTimestringファイル処理完了時間
successboolean成功したかどうか
msgstringsuccessがfalseの場合、エラーメッセージが入る
  • レスポンス例:
{
"data": [
{
"fileId": "4345227925730099200",
"fileName": "test1.doc",
"state": "success",
"uploader": "test@serviceme.com",
"errorMsg": "",
"finishTime": "2024-08-17T05:04:30.0128596Z"
},
{
"fileId": "4345227924266287104",
"fileName": "test2.docx",
"state": "success",
"uploader": "test@serviceme.com",
"errorMsg": "",
"finishTime": "2024-08-17T05:04:29.7952274Z"
}
],
"success": true,
"msg": ""
}

QnA作成

  • インターフェースURL:v1/openapi/workspace/qna/create

  • リクエスト方式:post

  • リクエストヘッダー:

パラメータ名必須タイプ説明
AuthorizationstringSERVICEMEアクセストークンを記入、形式:openapi {access_token}
  • リクエストボディ:
パラメータ名サブパラメータ必須タイプ説明
workspacestringファイルスペース
questionsstring配列質問配列、複数可
answerstring答え
metadatas任意object配列メタデータ
typeCodestringメタデータタイプ
contentstring内容
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/workspace/qna/create' \
--header 'Content-Type: application/json' \
--header 'Authorization: openapi {access_token}' \
--data '{
"questions": [
"テスト質問"
],
"answer": "テスト回答",
"workspace": "テストスペース",
"metadatas": [
{
"typeCode": "Document type",
"content": "テストメタデータ"
}
]
}'
  • レスポンスボディ:
パラメータ名タイプ説明
successboolean成功したかどうか
msgstringsuccessがfalseの場合、エラーメッセージが入る
  • レスポンス例:
{
"success": true,
"msg": ""
}

ファイル検索

  • インターフェースURL:v1/openapi/workspace/file

  • リクエスト方式:post

  • リクエストヘッダー:

パラメータ名必須タイプ説明
AuthorizationstringSERVICEMEアクセストークンを記入、形式:openapi {access_token}
  • リクエストボディ:
パラメータ名必須タイプ説明
workspacestringファイルスペース
pageIndex任意numberページ番号、デフォルトは1
pageSize任意number取得件数、デフォルトは10
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/workspace/file' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--data '{
"workspace": "テストスペース",
"pageIndex": 1,
"pageSize": 10
}'
  • レスポンスボディ:

    パラメータ名サブパラメータサブサブパラメータタイプ説明
    dataobject配列レスポンスデータ
    idstringファイルID
    namestringファイル名
    sizenumberファイルサイズ(バイト単位)
    descriptionstring説明
    fullPathstringファイルパス
    tagsobject配列ファイルタグ情報
    idstringタグID
    valuestringタグ内容
    chunkingStatestringファイルインデックス状態:waiting(待機中)、success(成功)、fail(失敗)、underway(処理中)
    previewStatestringファイルプレビュー状態:waiting(待機中)、success(成功)、fail(失敗)、underway(処理中)
    fileCanPreviewbooleanファイルプレビュー可否、true:可、false:不可
    previewUrlstringファイルプレビューURL
    createdByRealNamestringファイル作成者名
    createdByAccountstringファイル作成者アカウント
    createddatetimeファイル作成日時
    modifiedByRealNamestringファイル編集者名
    modifiedByAccountstringファイル編集者アカウント
    modifieddatetimeファイル編集日時
    successboolean成功したかどうか
    msgstringsuccessがfalseの場合、エラーメッセージが入る
  • レスポンス例:

json
{
"data": [
{
"id": "4339013367831199744",
"name": "test.docx",
"size": 15113,
"description": null,
"fullPath": "/",
"tags": [],
"chunkingState": "success",
"previewState": "success",
"fileCanPreview": true,
"previewUrl": "http://localhost.com/#/share/preview?fileId=4339013367831199744&objectType=2&previewType=file&mode=login",
"createdByRealName": "test",
"createdByAccount": "test",
"created": "2024-07-31T01:30:02.88",
"modifiedByRealName": "test",
"modifiedByAccount": "test",
"modified": "2024-07-31T01:30:02.88"
}
],
"pageSize": 10,
"pageIndex": 1,
"totalCount": 1,
"success": true,
"msg": ""
}

ファイルチャンクのクエリ

  • APIエンドポイント:v1/openapi/workspace/file/chunk

  • リクエストメソッド:post

  • リクエストヘッダー:

パラメータ名必須タイプパラメータ説明
AuthorizationstringSERVICEMEアクセストークンを入力、値の形式:openapi {access_token}
  • リクエストボディ:
パラメータ名必須タイプパラメータ説明
fileIdstringファイルID
imageFormatいいえstring画像フォーマット、markdownまたはhtml、デフォルトはmarkdown出力
pageIndexいいえnumberページ番号、デフォルトは1ページ目
pageSizeいいえnumber取得件数、デフォルトは10件
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/workspace/file/chunk' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--data '{
"fileId": "4344174161665458176",
"imageFormat": "html",
"pageIndex": 1,
"pageSize": 10
}'
  • レスポンスボディ:

    パラメータ名サブパラメータサブサブパラメータタイプパラメータ説明
    dataobject arrayレスポンスデータ
    idstringチャンクID
    contentstringチャンク内容
    successboolean成功したかどうか
    msgstringsuccessがfalseの場合、ここにエラーメッセージが入る
  • レスポンス例:

{
"data": [
{
"id": "4339013367831199744",
"content": "test"
}
],
"pageSize": 10,
"pageIndex": 1,
"totalCount": 1,
"success": true,
"msg": ""
}

RAG

  • APIエンドポイント:/v1/openapi/rag

  • リクエストメソッド:post

  • リクエストヘッダー:

パラメータ名必須タイプパラメータ説明
AuthorizationstringSERVICEMEアクセストークンを入力、値の形式:openapi {access_token}
  • リクエストボディ:
パラメータ名タイプ必須デフォルト説明
querystringいいえ無し検索したい質問または内容。Keywordsパラメータと両方nullにはできません。
keywordsstringいいえ無しキーワード。複数キーワードは | で区切る。Queryパラメータと両方nullにはできません。nullの場合は必要に応じてキーワードを抽出し、空でなければ渡されたキーワードを使用。
workspacesarrayいいえ無し今回のRAGで検索対象とするファイルスペース名またはID。指定するとそのスペースのみ検索。
ragObjectRagObject0RAGオブジェクトタイプ、列挙値(RagObject列挙参照)。現時点でQNA検索は未対応。
topknumber無し返却する結果数。
minSimilaritydoubleいいえ0.8最低類似度、範囲は [0, 1]
metadataProviderarrayいいえ無し使用するメタデータ。現在は["default"]のみ対応。
metadataSearchTypenumberいいえ0メタデータ検索方式。metadataProviderを有効にした場合に有効。0:フィルターモード、1:重み付けソートモード
ragModeSearchMode0RAGモード、列挙値(SearchMode列挙参照)。
weightsobjectいいえ無し各インデックスのRRF重み。RagModeHybridの場合のみ有効。nullの場合はデフォルト重みを使用。
rerankerstringいいえ無しnullの場合はrerankerを使用しない。

  • リクエスト例:
curl --location 'http://localhost/v1/openapi/rag' \
--header 'Authorization: ••••••' \
--header 'Content-Type: application/json' \
--data '{
"query": "人工知能とは何ですか?",
"keywords": "AI|機械学習",
"workspaces": ["workspace1", "workspace2"],
"ragObject": 0,
"topk": 3,
"minSimilarity": 0.8,
"metadataProvider": ["default"],
"metadataSearchType": 1,
"ragMode": 1,
"weights": {
"Embedding": 0.9,
"FullText": 0.8
},
"reranker": "default"
} '
  • レスポンスボディ:
フィールド名タイプ説明
dataobjectレスポンスデータオブジェクト。検索結果や検索IDなどを含む。
data.resultsarray検索結果リスト。各要素はチャンク情報を含むオブジェクト。
data.results[].chunkIdstringチャンクID
data.results[].fileIdstringチャンクが属するファイルID
data.results[].fileNamestringチャンクが属するファイル名
data.results[].contentstringチャンク内容
data.results[].metadatajsonチャンクのメタデータ
data.results[].urlstringチャンクのURL(存在する場合)
data.results[].searchScoredouble類似度スコア
data.results[].rrfScoredoubleRRFスコア
data.results[].rerankScoredouble再ランキングスコア
data.results[].workspaceIdstringファイルが属するファイルスペースID
data.results[].workspaceNamestringファイルが属するファイルスペース名
data.searchIdstring今回の検索操作のユニークID
successbooleanリクエスト成功の有無
msgstringリクエストのメッセージ(存在する場合)

  • レスポンス例:
{
"data": {
"results": [
{
"chunkId": "4422442085118906369",
"fileId": "4417076017114382336",
"fileName": "ファイル1.pdf",
"content": "……",
"metadata": {
"Url": "https://……",
"FileName": "ファイル1.pdf",
"WorkspaceName": "workspace1",
"FileId": "4417076017114382336",
"FilePath": "/",
"Created": "2025-03-03T11:23:08.803",
"Size": "1160594"
},
"url": "https://……",
"searchScore": 0.153852914388501,
"rrfScore": 0.8768274796195331,
"rerankScore": 0.0,
"workspaceId": "4417069258022846464",
"workspaceName": ""
},
{
"chunkId": "4422442085114712073",
"fileId": "4417076017114382336",
"fileName": "ファイル1.pdf",
"content": "……",
"metadata": {
"Url": "https://……",
"FileName": "ファイル1.pdf",
"WorkspaceName": "workspace1",
"FileId": "4417076017114382336",
"FilePath": "/",
"Created": "2025-03-03T11:23:08.803",
"Size": "1160594"
},
"url": "https://……",
"searchScore": 0.152822583517241,
"rrfScore": 0.8670604574184315,
"rerankScore": 0.0,
"workspaceId": "4417069258022846464",
"workspaceName": ""
},
{
"chunkId": "4422442085114712071",
"fileId": "4417076017114382336",
"fileName": "ファイル1.pdf",
"content": "……",
"metadata": {
"Url": "……",
"FileName": "ファイル1.pdf",
"WorkspaceName": "workspace1",
"FileId": "4417076017114382336",
"FilePath": "/",
"Created": "2025-03-03T11:23:08.803",
"Size": "1160594"
},
"url": "……",
"searchScore": 0.153708375384407,
"rrfScore": 0.8661891817471927,
"rerankScore": 0.0,
"workspaceId": "4417069258022846464",
"workspaceName": ""
}
],
"searchId": "4423568945336811520"
},
"success": true,
"msg": ""
}
  • 列挙型

RagObject 列挙(現時点でQAはサポートされていません。選択しても検索できません)

列挙値数値説明
Both0Q&Aとドキュメント内容の両方を検索。
Qna1Q&A内容のみを検索。
Doc2ドキュメント内容のみを検索。

SearchMode 列挙

列挙値数値説明
Hybrid1ハイブリッド検索モード。埋め込みベクトルと全文検索を組み合わせる。
Embedding2埋め込みベクトルのみを使った検索モード。
FullText3全文検索のみを使った検索モード。

  • Rerankモデルの設定方法
    cohere-rerank-v3.5モデルの設定例:
INSERT INTO dbo.AI_LLM (Id,ModelName,TokenCount,Config,Enable,[Default],Display,DisplayName) VALUES
(4183721090264072898,N'rerank-v3.5',255454,N'{"RerankerName":"cohere","Uri":"https://ドメイン/v2/rerank","Token":"bearer token"}',1,0,0,N'cohere-rerank-v3.5');

注意:Cohere公式APIを使用する場合、Tokenフィールドの値はbearer token。Azure AI Foundry APIを使用する場合は、Tokenフィールドの値からbearerを除去してください。

ファイルスペース一覧API

基本情報

  • リクエストメソッド:GET
  • APIエンドポイント/v1/openapi/workspace/all

リクエストパラメータ

なし

レスポンス

パラメータ名タイプ説明
dataArrayカテゴリ一覧。各項目はカテゴリ情報とその下のファイルスペース一覧を含む
successBooleanAPI呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字列)
data配列の項目構造:カテゴリ(WorkspaceCategory)
パラメータ名タイプ説明
idNumberカテゴリID
nameStringカテゴリ名
iconStringアイコン
workspacesArrayそのカテゴリ下のファイルスペース一覧(下表参照)
data[n].workspaces配列の項目構造:ファイルスペース(WorkspaceInfo)
パラメータ名タイプ説明
idStringスペースID
nameStringスペース名
descriptionStringスペース説明
operationKeysArray(String)操作権限リスト
fileCountNumberファイル数(統計値)

レスポンス例:

{
"data": [
{
"id": 4493041505002323001,
"name": "動画資料",
"icon": "icon-video",
"workspaces": [
{
"id": "4493061452348784640",
"name": "プロモーション素材",
"description": "プロモーション動画素材の保存用",
"operationKeys": ["read", "write"],
"fileCount": 128
},
{
"id": "4493061452348784641",
"name": "会議録画",
"description": "社内会議録画ファイル",
"operationKeys": ["read"],
"fileCount": 57
}
]
},
{
"id": 4493041505002323002,
"name": "ドキュメント資料",
"icon": "icon-doc",
"workspaces": [
{
"id": "4493061452348784700",
"name": "製品マニュアル",
"description": "外部公開用製品説明ドキュメント",
"operationKeys": [],
"fileCount": 342
}
]
}
],
"success": true,
"msg": ""
}

ファイルスペース作成API

基本情報

  • リクエストメソッド:POST
  • APIエンドポイント/v1/openapi/workspace/create

リクエストパラメータ

パラメータ名タイプ説明
nameStringスペース名(例:"テストスペース")
workspaceTypeIdStringファイルスペースタイプID(例:"4493041505002323969")
classificationIdStringカテゴリID(例:"4035265396658405376")
descriptionStringスペース説明(例:"テストスペース")
quotaNumberクォータ(例:1)
fileSizeNumberファイルサイズ制限(例:1)
fileTypesArray対応ファイルタイプリスト(例:[".mov", ".mp4", ".mpeg"])
enableBoolean有効化フラグ(true = 有効、false = 無効)
operationKeysArray操作権限リスト(例:空配列)
noticeStringスペース通知(例:"テストスペース")
settingsStringスペース設定(JSON文字列形式、モード、ファイルサイズ、対応タイプ等を含む)

注:

  1. settingsフィールドの説明は下記の【ファイル前処理および設定パラメータ説明】を参照してください。
  2. metadataTemplateフィールドの説明は下記の【メタデータパラメータ説明】を参照してください。

リクエストパラメータ例:

{
"name": "テストスペース",
"workspaceTypeId": "4493041505002323969",
"classificationId": "4035265396658405376",
"description": "テストスペース",
"quota": 1,
"fileSize": 1,
"fileTypes": [".mov", ".mp4", ".mpeg"],
"enable": true,
"operationKeys": [],
"notice": "テストスペース",
"settings": "{\"setting\":{\"mode\":\"default\",\"identifier\":\"\",\"maxLength\":1024,\"overlap\":0},\"status\":null,\"fileSize\":1,\"fileTypes\":[\".mov\",\".mp4\",\".mpeg\"]}"
}

戻り値

パラメータ名説明
dataString新規ファイルスペースのID(例:"4493061452348784640")
successBooleanAPI呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字列)

戻り値例:

{
"data": "4493061452348784640",
"success": true,
"msg": ""
}

ファイルスペース編集API

基本情報

  • リクエスト方式:POST
  • エンドポイント/v1/openapi/workspace/update

リクエストパラメータ

パラメータ名説明
idString編集対象のファイルスペースID(例:"4437336392049102848")
workspaceTypeIdStringファイルスペースタイプID(例:"4437336252408139777")
workspaceTypeNameStringファイルスペースタイプ名(例:"テストスペース")
nameStringスペース名(例:"テストスペース")
enableBoolean有効化フラグ(true = 有効、false = 無効)
noticeStringスペース通知(例:"最終版テスト")
descriptionStringスペース説明(例:"最終版テスト")
classificationIdString分類ID(例:"4035265396658405376")
quotaNumber/Nullクォータ(null可、変更しない場合)
quotaUsageNumber使用済みクォータ(例:50815916)
settingsStringスペース設定(JSON文字列形式、モード、OCR、要約などの高度設定を含む)
metadataTemplateStringメタデータテンプレート(JSON配列文字列、例:"\[{"name":" テスト ","type":0}]")

注:

  1. settingsフィールドの詳細は下記【ファイル前処理と設定パラメータ説明】を参照してください。
  2. metadataTemplateフィールドの詳細は下記【メタデータパラメータ説明】を参照してください。

リクエスト例:

{
"id": "4437336392049102848",
"workspaceTypeId": "4437336252408139777",
"workspaceTypeName": "テストスペース",
"name": "テストスペース",
"enable": true,
"notice": "最終版テスト",
"description": "最終版テスト",
"classificationId": "4035265396658405376",
"quota": null,
"quotaUsage": 50815916,
"settings": "{\"setting\":{\"mode\":\"refine\",\"identifier\":\"\",\"maxLength\":1024,\"overlap\":0,\"previewEnable\":true,\"enable\":true,\"documentOCR\":false,\"summaryEnable\":true,\"imageRecognize\":false,\"ocrMode\":\"layout\",\"summaryPrompt\":\"### Summarize the following in the original language in no more than 200 words.\"},\"status\":null,\"fileSize\":null,\"fileTypes\":[\".md\"],\"useWorkspaceSetting\":true}",
"metadataTemplate": "[{\"name\":\"テスト\",\"type\":0}]"
}

戻り値

パラメータ名説明
successBooleanAPI呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字列)

戻り値例:

{
"success": true,
"msg": ""
}

ファイルスペース削除API

基本情報

  • リクエスト方式:DELETE
  • エンドポイント/v1/openapi/workspace/delete

リクエストパラメータ

パラメータ名位置説明
idsArray(Number)QueryまたはBody削除対象のファイルスペースIDリスト(複数対応)

リクエスト例:

[
4493061452348784640,
4493061452348784641
]

戻り値

パラメータ名説明
successBooleanAPI呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字列)

戻り値例:

{
"success": true,
"msg": ""
}

ファイル前処理と設定パラメータ説明

このJSON構造は、ファイルスペース内のファイルに対する前処理ルール、分割モード、機能スイッチの設定を定義するもので、通常はsettingsフィールドのコア内容(ファイルスペース追加/編集APIのsettingsパラメータに対応)です。以下に各パラメータの詳細を示します。

1. コア設定オブジェクト:setting

パラメータ名値の説明備考
modeString選択肢:- default:デフォルト分割モード- refine:細分割モードファイル内容の分割戦略を制御。細分割モードはより細かく内容を分割します。
maxLengthNumber数値(例:1024)カスタム分割モデル時に有効。各分割の最大長さを定義。デフォルトは1024。
overlapNumber数値(例:0)分割テキストの上下重複長さ。分割による内容断裂を防ぐため。0は重複なし。
previewEnableBooleantrue(有効)/ false(無効)ファイルプレビュー機能の有効化。オンにするとファイルを開かずに一部内容を閲覧可能。
enableBooleantrue(有効)/ false(無効)総合スイッチ。ファイル前処理機能(OCR、要約生成など全サブ機能)を有効化。
documentOCRBooleantrue(オン)/ false(オフ)ドキュメントのOCR認識を制御。画像形式や画像を含む文書に適用。オンで画像内文字を抽出。
ocrModeString選択肢:- read:読み取りモード(文字のみ抽出)- layout:レイアウトモード(段落や表の配置を保持)documentOCRtrue時に有効。OCR認識の精度と出力形式を定義。
summaryEnableBooleantrue(オン)/ false(オフ)自動文書要約の生成を制御。オンでsummaryPromptに基づく要約を生成。
imageRecognizeBooleantrue(オン)/ false(オフ)文書内の画像要素認識を制御。オンで画像の種類や重要情報を解析。
summaryPromptStringテキスト文字列(例:"### Summarize the following in the original language in no more than 200 words."全文要約生成ルールのカスタマイズ。Markdown形式対応。AIによる要約生成の指示に使用。
formulasBooleantrue(オン)/ false(オフ)文書内の数式認識を制御(数学式、化学式など)。オンで数式の原形式を抽出・保持。
screenshots_by_pageBooleantrue(オン)/ false(オフ)ページ単位でのスクリーンショット生成を制御。オンで各ページの画像を生成し、レイアウト確認に便利。

2. グローバル設定スイッチ:useWorkspaceSetting

パラメータ名値の説明備考
useWorkspaceSettingBooleantrue(従う)/ false(カスタム)現在のファイル設定が所属する**ファイルスペース(Workspace)**のグローバル設定に従うかを制御:- true:Workspaceのデフォルト設定を使用し、現在のsettingのカスタム設定は無視- false:現在のsettingのカスタム設定を使用し、Workspaceのデフォルト設定を上書き

完全なJSON例

{
"setting": {
"mode": "refine", // 分割モード、default:デフォルト、refine:細分割
"maxLength": 1024, // カスタム分割モデル時に設定、デフォルト1024
"overlap": 0, // 分割テキストの上下重複長さ
"previewEnable": true, // ファイルプレビュー有効化
"enable": true, // 前処理有効化
"documentOCR": true, // OCRオン
"ocrMode": "layout", // OCRモード、read:読み取り、layout:レイアウト
"summaryEnable": true, // 文書要約生成オン
"imageRecognize": true, // 文書内画像認識オン
"summaryPrompt": "### Summarize the following in the original language in no more than 200 words.", // カスタム全文要約プロンプト
"formulas": false, // 数式認識オフ
"screenshots_by_page": false // ページ単位スクリーンショットオフ
},
"useWorkspaceSetting": true // ファイル設定がWorkspace設定に従うか
}

メタデータパラメータ説明

メタデータはJSON文字列をパラメータ値として受け取ります。

1. コア設定オブジェクト:setting

パラメータ名値の説明備考
nameStringメタデータ名
typeNumber0:テキストタイプ;1:選択肢タイプ
limitString選択肢の各項目

完全なJSON例

{
"metadataTemplate": "[{\"name\":\"テスト\",\"type\":0},{\"name\":\"テスト2\",\"type\":1,\"limit\":\"[\\\"選択肢1\\\",\\\"選択肢2\\\"]\"}]"
}

ファイル物理削除API

基本情報

  • リクエスト方式:DELETE
  • エンドポイント:/v1/openapi/workspace/file/deleteFilePhysically

リクエストパラメータ

パラメータ名位置必須説明
idNumber(Int64)Queryはい物理削除対象のファイルID

リクエスト例(Query):

/v1/openapi/workspace/file/deleteFilePhysically?id=4493061452348784640

cURL例:

curl -X DELETE "https://<host>/v1/openapi/workspace/file/deleteFilePhysically?id=4493061452348784640" ^
-H "Authorization: Bearer <token>"

戻り値

パラメータ名説明
successBooleanAPI呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字列)

戻り値例:

{
"success": true,
"msg": ""
}

動作説明

  • 物理削除は復元不可の操作です。慎重に呼び出してください。
  • 指定IDが存在しないか権限がない場合は失敗を返します。

ファイルメタデータ編集API

基本情報

  • リクエスト方式:PUT
  • エンドポイント:/v1/openapi/workspace/file/metadataExpansionEdit

リクエストパラメータ

パラメータ名位置必須説明
idNumber(Int64)Bodyはい編集対象のファイルID
metadataTemplateStringBodyいいえ拡張メタデータのJSON文字列。空または省略時は拡張メタデータをクリア。推奨構造例:[{"name":"Document type","type":0,"value":"契約書"}]

リクエスト例(JSON):

{
"id": 4493061452348784640,
"metadataTemplate": "[{\"name\":\"Document type\",\"type\":0,\"value\":\"契約書\"},{\"name\":\"Department\",\"type\":0,\"value\":\"営業部\"}]"
}

cURL例:

curl -X PUT "https://<host>/v1/openapi/workspace/file/metadataExpansionEdit" ^
-H "Authorization: Bearer <token>" ^
-H "Content-Type: application/json" ^
--data-raw "{\"id\":4493061452348784640,\"metadataTemplate\":\"[{\\\"name\\\":\\\"Document type\\\",\\\"type\\\":0,\\\"value\\\":\\\"契約書\\\"},{\\\"name\\\":\\\"Department\\\",\\\"type\\\":0,\\\"value\\\":\\\"営業部\\\"}]\"}"

戻り値

パラメータ名説明
successBooleanAPI呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字列)

戻り値例:

{
"success": true,
"msg": ""
}

動作説明

  • 入力パラメータに基づきファイルの拡張メタデータ(MetadataExpansion)を更新し、doc_metadataインデックスを再構築して検索に反映させます。
  • 指定IDが存在しないか権限がない場合は失敗を返します。

ファイル一覧API

基本情報

  • リクエスト方式:POST
  • エンドポイント:/v1/openapi/workspace/file

リクエストパラメータ

パラメータ名位置必須説明
workspaceStringBodyはいファイルスペース名
pageIndexNumber(Int32)Bodyいいえページ番号、デフォルトは1
pageSizeNumber(Int32)Bodyいいえ1ページあたりの件数、デフォルトは10

リクエスト例(JSON):

{
"workspace": "公共資料庫",
"pageIndex": 1,
"pageSize": 10
}

cURL例:

curl -X POST "https://<host>/v1/openapi/workspace/file" ^
-H "Authorization: Bearer <token>" ^
-H "Content-Type: application/json" ^
--data-raw "{\"workspace\":\"公共資料庫\",\"pageIndex\":1,\"pageSize\":10}"

戻り値

パラメータ名説明
pageIndexNumber現在のページ番号
pageSizeNumber1ページあたりの件数
totalCountNumber総件数(0または-1は不明/増分を示し、クライアント側で適宜処理可能)
dataArray<File>ファイルデータリスト。詳細は下記「ファイル項目フィールド説明」を参照

ファイル項目フィールド説明(例、実際のフィールドはシステムバージョンにより増減あり):

フィールド名説明
idNumberファイルID
fileNameStringファイル名
previewUrlStringファイルプレビューURL(システムでプレビューテンプレート設定時に返却)
fileCanPreviewBooleanプレビュー可能か(バックエンドのプレビュー状態から算出)
previewStateStringプレビュー状態:waiting / underway / success / fail
chunkingStateStringチャンク処理状態:waiting / underway / success / fail
modifiedString最終更新日時(ISO形式例:2024-01-01T12:00:00Z

戻り値例:

{
"pageIndex": 1,
"pageSize": 10,
"totalCount": 125,
"data": [
{
"id": 4493061452348784640,
"fileName": "サンプル文書.docx",
"previewUrl": "https://<host>/preview/file/4493061452348784640",
"fileCanPreview": true,
"previewState": "success",
"chunkingState": "underway",
"modified": "2024-07-01T09:30:15Z"
}
]
}

動作説明

  • 「ファイル」のみ返却(フォルダは含まない)。
  • デフォルトはModifiedフィールドの降順ソート、ページング対応。
  • 指定されたworkspace内のファイルのみ検索。呼び出し元は該当スペースのアクセス権限が必要。管理者以外は追加の権限も必要。
  • システムでファイルプレビューURLテンプレート設定時はpreviewUrlを返却。未設定時は空または省略。
  • previewStatechunkingStateの列挙値はそれぞれwaiting / underway / success / fail
  • pageIndex / pageSize未指定時はデフォルト値1 / 10を使用。

ファイルスペースタイプ

ファイルスペースタイプ新規追加API

基本情報

  • リクエスト方式:POST
  • エンドポイント:/v1/openapi/workspaceType

リクエストパラメータ

パラメータ名説明
codeStringファイルスペースタイプコード
titleArray多言語タイトルリスト。各要素は以下のフィールドを含む:- languageCode:言語コード(例:ja-JP、zh-CN、en-US)- content:該当言語のタイトル内容
iconStringアイコンパス(例:/icons/01842830fc1348edacf68edd2695614a.png
sortNumberソート順(例:1)
descriptionStringタイプ説明

リクエスト例(Body):

{
"code": "ファイルスペースタイプコード",
"title": [
{ "languageCode": "zh-CN", "content": "多言語" },
{ "languageCode": "en-US", "content": "テスト追加" }
],
"icon": "/icons/01842830fc1348edacf68edd2695614a.png",
"sort": 1,
"description": "説明"
}

cURL例:

curl -X POST "https://<host>/v1/openapi/workspaceType" ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer <token>" ^
-d "{ \"code\": \"ファイルスペースタイプコード\", \"title\": [ { \"languageCode\": \"zh-CN\", \"content\": \"多言語\" } ], \"icon\": \"/icons/018...png\", \"sort\": 1, \"description\": \"説明\" }"

戻り値

パラメータ名説明
successBooleanAPI呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字列)

戻り値例:

{ "success": true, "msg": "" }

ファイルスペースタイプ編集インターフェース

基本情報

  • リクエスト方式:PUT
  • インターフェースアドレス:/v1/openapi/workspaceType

リクエストパラメータ

パラメータ名タイプ説明
idString編集対象のタイプID
codeStringファイルスペースタイプコード
titleArray多言語タイトルリスト(同上)
iconStringアイコンパス
sortNumberソート順序番号
descriptionStringタイプ説明

リクエストパラメータ例(Body):

{
"id": "4493041505002323969",
"code": "workspace-type-code",
"title": [
{ "languageCode": "zh-CN", "content": "中文名称" },
{ "languageCode": "en-US", "content": "English Name" }
],
"icon": "/icons/xxx.png",
"sort": 2,
"description": "更新说明"
}

cURL例:

curl -X PUT "https://<host>/v1/openapi/workspaceType" ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer <token>" ^
-d "{ \"id\": \"4493041505002323969\", \"code\": \"workspace-type-code\", \"title\": [ { \"languageCode\": \"zh-CN\", \"content\": \"中文名称\" } ], \"icon\": \"/icons/xxx.png\", \"sort\": 2, \"description\": \"更新说明\" }"

戻り値

パラメータ名タイプ説明
successBooleanインターフェース呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字)

戻り値例:

{ "success": true, "msg": "" }

ファイルスペースタイプ削除インターフェース

基本情報

  • リクエスト方式:DELETE
  • インターフェースアドレス:/v1/openapi/workspaceType

リクエストパラメータ

パラメータ名タイプ位置説明
idsArray(Number)Query または Body削除対象のタイプIDリスト、バッチ対応可能

リクエストパラメータ例(Body):

[4493061452348784640, 4493061452348784641]

cURL例:

curl -X DELETE "https://<host>/v1/openapi/workspaceType" ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer <token>" ^
-d "[4493061452348784640,4493061452348784641]"

戻り値

パラメータ名タイプ説明
successBooleanインターフェース呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字)

戻り値例:

{ "success": true, "msg": "" }

ファイルスペースタイプフォーム情報取得インターフェース

基本情報

  • リクエスト方式:GET
  • インターフェースアドレス:/v1/openapi/workspaceType

リクエストパラメータ

パラメータ名タイプ位置必須説明
idStringQueryはいタイプID

リクエストパラメータ例(Query):

/v1/openapi/workspaceType?id=4493061452348784640

cURL例:

curl -X GET "https://<host>/v1/openapi/workspaceType?id=4493061452348784640" ^
-H "Authorization: Bearer <token>"

戻り値

パラメータ名タイプ説明
dataObject(MasterDataVO)タイプ詳細(code、title、icon、sort、description等を含む)
successBooleanインターフェース呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字)

戻り値例:

{
"data": {
"id": "4493061452348784640",
"code": "workspace-type-code",
"title": [
{ "languageCode": "zh-CN", "content": "中文名称" }
],
"icon": "/icons/xxx.png",
"sort": 1,
"description": "说明"
},
"success": true,
"msg": ""
}

ファイルスペースタイプ有効化/無効化インターフェース

基本情報

  • リクエスト方式:PUT
  • インターフェースアドレス:/v1/openapi/workspaceType/Enable

リクエストパラメータ

パラメータ名タイプ説明
idNumber(Int64)タイプID
enableBoolean有効化かどうか(true = 有効、false = 無効)

リクエストパラメータ例(Body):

{ "id": 4493061452348784640, "enable": true }

cURL例:

curl -X PUT "https://<host>/v1/openapi/workspaceType/Enable" ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer <token>" ^
-d "{ \"id\": 4493061452348784640, \"enable\": true }"

戻り値

パラメータ名タイプ説明
successBooleanインターフェース呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字)

戻り値例:

{ "success": true, "msg": "" }

ファイルスペースタイプドロップダウン取得インターフェース

基本情報

  • リクエスト方式:GET
  • インターフェースアドレス:/v1/openapi/workspaceType/Dropdown

リクエストパラメータ

なし

cURL例:

curl -X GET "https://<host>/v1/openapi/workspaceType/Dropdown" ^
-H "Authorization: Bearer <token>"

戻り値

パラメータ名タイプ説明
dataArray(DropdownVO)ドロップダウンデータリスト
successBooleanインターフェース呼び出し結果(true = 成功、false = 失敗)
msgStringメッセージ(成功時は通常空文字)

戻り値例:

{
"data": [
{ "label": "個人スペース", "value": "4493061452348784640" },
{ "label": "チームスペース", "value": "4493061452348784641" }
],
"success": true,
"msg": ""
}

ユーザー

ユーザー追加(バッチ対応)

  • インターフェースアドレス:v1/openapi/user

  • リクエスト方式:post

  • リクエストヘッダー:

パラメータ名必須タイプ説明
AuthorizationstringSERVICEMEアクセストークンを記入、値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストボディ:
パラメータ名必須タイプデフォルト値説明
userNamestringアカウント/ユーザー名
passwordいいえstring''パスワード
activeいいえbooleantrue有効状態
userInfoいいえobjectユーザー情報
userInfo.realNameいいえstringuserNameの値本名
userInfo.spellいいえstring本名のピンイン
userInfo.serialNumberいいえstring社員番号
userInfo.nickNameいいえstringニックネーム
userInfo.genderいいえnumber0性別 0:FEMALE, 1:MALE
userInfo.birthdayいいえstring誕生日
userInfo.mobilePhoneいいえstring携帯番号
userInfo.emailいいえstringメール
userInfo.weChatいいえstringWeChatID
userInfo.avatarいいえstringアバター
userInfo.regionいいえstring地域
userInfo.joinTimeいいえstring入社日
userInfo.sortいいえnumber0ソート番号
userInfo.enableいいえbooleanfalse有効/無効
userInfo.descriptionいいえstring説明
userInfo.externalいいえbooleanfalse内部/外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー
userInfo.officePhoneNumberいいえstringオフィス電話
userInfo.isAadいいえbooleanアカウントがAAD(microsoft Entra ID)由来かどうか
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user' \
--header 'Authorization: openapi {access_token}' \
--data '[{
"userName": "user1",
"password": "abc123",
"active": true,
"userInfo": {
"realName": "张三",
"spell": "zhangsan",
"serialNumber": "123456",
"nickName": "张三",
"gender": 0,
"birthday": "1990-01-01",
"mobilePhone": "13800138000",
"email": "zhangsan@email.com",
"weChat": "zhangsan",
"avatar": "/icons/e5392a9c9efb423cab69ce040dcb04e7.png",
"region": "中国",
"joinTime": "2023-01-01",
"sort": 101,
"enable": true,
"description": "张三的描述",
"external": false,
"officePhoneNumber": "010-12345678",
"isAad": false
},
}] '
  • レスポンスボディ:
フィールド名タイプ説明
dataobjectレスポンスデータオブジェクト
data.accountIdstringアカウントID
data.userIdstringユーザーID
data.userNamestringユーザー名
data.realNamestringユーザー本名
successbooleanリクエスト成功可否
msgstringリクエストメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"accountId": "123456",
"userId": "123456",
"userName": "user1",
"realName": "张三"
}
]
}

ユーザー編集

  • インターフェースアドレス:v1/openapi/user

  • リクエスト方式:put

  • リクエストヘッダー:

パラメータ名必須タイプ説明
AuthorizationstringSERVICEMEアクセストークンを記入、値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストボディ:
パラメータ名必須タイプデフォルト値説明
userNameいいえstringアカウント/ユーザー名、ユーザー検索用で変更不可、idと両方空不可
idいいえstring''id、userNameと両方空不可
activebooleantrue有効状態
realNamestringuserNameの値本名
spellstring本名のピンイン
serialNumberstring社員番号
nickNamestringニックネーム
gendernumber0性別 0:FEMALE, 1:MALE
birthdaystring誕生日
mobilePhonestring携帯番号
emailstringメール
weChatstringWeChatID
avatarstringアバター
regionstring地域
joinTimestring入社日
sortnumber0ソート番号
enablebooleanfalse有効/無効
descriptionstring説明
externalbooleanfalse内部/外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー
officePhoneNumberstringオフィス電話
isAadBooleanアカウントがAAD(microsoft Entra ID)由来かどうか
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user' \
--header 'Authorization: openapi {access_token}' \
--data '{
"id": "123456",
"userName": "user1",
"realName": "张三",
"spell": "zhangsan",
"serialNumber": "123456",
"nickName": "张三",
"gender": 0,
"birthday": "1990-01-01",
"mobilePhone": "13800138000",
"email": "zhangsan@email.com",
"weChat": "zhangsan",
"avatar": "/icons/e5392a9c9efb423cab69ce040dcb04e7.png",
"region": "中国",
"joinTime": "2023-01-01",
"sort": 101,
"enable": true,
"description": "张三的描述",
"external": false,
"officePhoneNumber": "010-12345678",
"isAad": false
} '
  • レスポンスボディ:
フィールド名タイプ説明
successbooleanリクエスト成功可否
msgstringリクエストメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": ""
}

ユーザー削除

  • インターフェースアドレス:v1/openapi/user

  • リクエスト方式:delete

  • リクエストヘッダー:

パラメータ名必須タイプ説明
AuthorizationstringSERVICEMEアクセストークンを記入、値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストボディ:
パラメータ名必須タイプデフォルト値説明
arrayユーザーID配列またはユーザー名配列。配列内はIDのみかユーザー名のみで混在不可。
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user' \
--header 'Authorization: openapi {access_token}' \
--data '['user1','user2']'
  • レスポンスボディ:
フィールド名タイプ説明
successbooleanリクエスト成功可否
msgstringリクエストメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": ""
}

ユーザー有効化

  • インターフェースアドレス:v1/openapi/user/{userCode}/enable

  • リクエスト方式:put

  • リクエストヘッダー:

パラメータ名必須タイプ説明
AuthorizationstringSERVICEMEアクセストークンを記入、値の形式:openapi {access_token}
  • Content Type:application/json
  • ルートパラメータ:
パラメータ名必須タイプデフォルト値説明
userCodestringユーザーIDまたはユーザー名
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user/123456/enable' \
--header 'Authorization: openapi {access_token}' \
  • レスポンスボディ:
フィールド名タイプ説明
successbooleanリクエスト成功可否
msgstringリクエストメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": ""
}

ユーザー無効化

  • インターフェースアドレス:v1/openapi/user/{userCode}/disable

  • リクエスト方式:put

  • リクエストヘッダー:

パラメータ名必須タイプ説明
AuthorizationstringSERVICEMEアクセストークンを記入、値の形式:openapi {access_token}
  • Content Type: application/json
  • routeパラメータ:
パラメータ名必須タイプデフォルト値パラメータ説明
userCodeはいstringなしユーザーIDまたはユーザー名
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user/123456/disable' \
--header 'Authorization: openapi {access_token}' \
  • レスポンスbody:
フィールド名タイプ説明
successbooleanリクエストが成功したかどうか
msgstringリクエストの返却メッセージ(ある場合)
  • レスポンス例:
{
"success": true,
"msg": ""
}

ユーザーの有効化/無効化(バッチ対応)

  • エンドポイント:v1/openapi/user/enable

  • リクエストメソッド:put

  • リクエストヘッダー:

パラメータ名必須タイプパラメータ説明
AuthorizationはいstringSERVICEMEアクセストークンを入力。値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストbody:
パラメータ名必須タイプデフォルト値パラメータ説明
codesはいarrayなしユーザーIDまたはユーザー名の配列。配列内はすべてIDかすべてユーザー名で統一。
operationはいbooleantruetrue: 有効化, false: 無効化
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user/enable' \
--header 'Authorization: openapi {access_token}' \
--data '{
"codes": ['user1', 'user2'],
"operation": true
}'
  • レスポンスbody:
フィールド名タイプ説明
successbooleanリクエストが成功したかどうか
msgstringリクエストの返却メッセージ(ある場合)
  • レスポンス例:
{
"success": true,
"msg": ""
}

ユーザーリストの取得(ページネーション対応)

  • エンドポイント:v1/openapi/user/pageList

  • リクエストメソッド:post

  • リクエストヘッダー:

パラメータ名必須タイプパラメータ説明
AuthorizationはいstringSERVICEMEアクセストークンを入力。値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストbody:
パラメータ名必須タイプデフォルト値パラメータ説明
orderFieldはいstringなしソートに使用するフィールド。Idは時間情報を含むため、作成日時のソートにidを使用可能
orderTypeはいstringなしソートタイプ。asc: 昇順, desc: 降順
conditionsいいえarrayなし検索条件。複数指定時はAND条件で結合
conditions.fieldNameいいえstringなし検索条件のフィールド名(例:realName)
conditions.fieldValueいいえstringなし検索条件の値
conditions.conditionalTypeいいえnumber0検索条件の比較タイプ 0: 完全一致, 1: 部分一致, 2: より大きい, 3: 以上, 4: より小さい, 5: 以下, 6: 含む(in), 7: 含まない(not in), 8: 左部分一致, 9: 右部分一致, 10: 不等, 11: nullまたは空, 12: 空でない, 13: notLike
pageIndexはいnumberなしページ番号
pageSizeはいnumberなし1ページあたりの件数
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user/pageList' \
--header 'Authorization: openapi {access_token}' \
{
"orderField": "id",
"orderType": "desc",
"conditions": [
{
"fieldName": "realName",
"fieldValue": "张三",
"conditionalType": 0
}
],
"pageIndex": 1,
"pageSize": 15
}
  • レスポンスbody:
フィールド名タイプ説明
dataarrayページネーションされたデータ
data.idstringアカウントID
data.userIdstringユーザーID
data.userNamestringユーザー名
data.activeboolean有効かどうか
data.avatarstringアバター
data.birthdaystring誕生日
data.createdstringユーザーデータ作成日
data.modifiedstringユーザーデータ最終更新日
data.descriptionstring説明
data.gendernumber性別 0:女性, 1:男性
data.mobilePhonestring携帯番号
data.nickNamestringニックネーム
data.emailstringメールアドレス
data.joinTimestring入社日
data.regionstring地域
data.weChatstringWeChat番号
data.spellstring本名のピンイン
data.serialNumberstring社員番号
data.accountIdstringユーザー所属アカウントID
data.sortnumberソート番号
data.officePhoneNumberstringオフィス電話番号
data.externalboolean内部/外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー
data.isAadbooleanアカウントがAAD(microsoft Entra ID)由来かどうか
data.enableboolean有効/無効
pageIndexnumber現在のページ番号
pageSizenumberページサイズ
totalCountnumber総件数
successbooleanリクエストが成功したかどうか
msgstringリクエストの返却メッセージ(ある場合)
  • レスポンス例:
{
"data": [
{
"accountId": "123456",
"userId": "123456",
"userName": "user1",
"realName": "张三"
}
],
"pageSize": 15,
"pageIndex": 1,
"totalCount": 1,
"success": true,
"msg": null
}

ユーザー情報の取得

  • エンドポイント:v1/openapi/user/{userCode}

  • リクエストメソッド:get

  • リクエストヘッダー:

パラメータ名必須タイプパラメータ説明
AuthorizationはいstringSERVICEMEアクセストークンを入力。値の形式:openapi {access_token}
  • Content Type:application/json
  • routeパラメータ:
パラメータ名必須タイプデフォルト値パラメータ説明
userCodeはいstringなしユーザーIDまたはユーザー名
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user/123456' \
--header 'Authorization: openapi {access_token}' \
  • レスポンスbody:
フィールド名タイプ説明
dataobjectレスポンスデータオブジェクト
data.idstringアカウントID
data.userIdstringユーザーID
data.userNamestringユーザー名
data.Activeboolean有効かどうか
data.Avatarstringアバター
data.Birthdaystring誕生日
data.Createdstringユーザーデータ作成日
data.Modifiedstringユーザーデータ最終更新日
data.Descriptionstring説明
data.Gendernumber性別 0:女性, 1:男性
data.MobilePhonestring携帯番号
data.NickNamestringニックネーム
data.Emailstringメールアドレス
data.JoinTimestring入社日
data.Regionstring地域
data.WeChatstringWeChat番号
data.Spellstring本名のピンイン
data.SerialNumberstring社員番号
data.AccountIdstringユーザー所属アカウントID
data.Sortnumberソート番号
data.OfficePhoneNumberstringオフィス電話番号
data.Externalboolean内部/外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー
data.IsAadbooleanアカウントがAAD(microsoft Entra ID)由来かどうか
data.Enableboolean有効/無効
successbooleanリクエストが成功したかどうか
msgstringリクエストの返却メッセージ(ある場合)
  • レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"accountId": "123456",
"userId": "123456",
"userName": "user1",
"realName": "张三"
}
]
}

現在ログインしているユーザー情報の取得

  • エンドポイント:v1/openapi/user/me

  • リクエストメソッド:get

  • リクエストヘッダー:

パラメータ名必須タイプパラメータ説明
AuthorizationはいstringSERVICEMEアクセストークンを入力。値の形式:openapi {access_token}
  • Content Type:application/json

  • リクエスト例:

curl --location 'http://localhost/v1/openapi/user/me' \
--header 'Authorization: openapi {access_token}' \
  • レスポンスbody:
フィールド名タイプ説明
dataobjectレスポンスデータオブジェクト
data.idstringアカウントID
data.userIdstringユーザーID
data.userNamestringユーザー名
data.Activeboolean有効かどうか
data.Avatarstringアバター
data.Birthdaystring誕生日
data.Createdstringユーザーデータ作成日
data.Modifiedstringユーザーデータ最終更新日
data.Descriptionstring説明
data.Gendernumber性別 0:女性, 1:男性
data.MobilePhonestring携帯番号
data.NickNamestringニックネーム
data.Emailstringメールアドレス
data.JoinTimestring入社日
data.Regionstring地域
data.WeChatstringWeChat番号
data.Spellstring本名のピンイン
data.SerialNumberstring社員番号
data.AccountIdstringユーザー所属アカウントID
data.Sortnumberソート番号
data.OfficePhoneNumberstringオフィス電話番号
data.Externalboolean内部/外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー
data.IsAadbooleanアカウントがAAD(microsoft Entra ID)由来かどうか
data.Enableboolean有効/無効
successbooleanリクエストが成功したかどうか
msgstringリクエストの返却メッセージ(ある場合)
  • レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"accountId": "123456",
"userId": "123456",
"userName": "user1",
"realName": "张三"
}
]
}

現在ログインしているユーザーのロールを取得する

  • 説明: ユーザーが所属する組織のロールは含まれず、データ権限が付与されていないロールも含まれません(通常、スーパ管理者以外はこのようなケースはありません)

  • APIエンドポイント:v1/openapi/user/me/roles

  • HTTPメソッド:get

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEMEアクセストークンを指定。値の形式:openapi {access_token}
  • Content Type:application/json

  • リクエスト例:

curl --location 'http://localhost/v1/openapi/user/me/roles' \
--header 'Authorization: openapi {access_token}' \
  • レスポンスボディ:
フィールド名説明
dataarrayレスポンスデータオブジェクト
data.roleIdstringロールID
data.roleNamestringロール名
data.dataPermissionListarrayユーザーがこのロールにおけるデータ権限
data.dataPermissionList.BusinessTreeTypenumberアプリケーションタイプ
data.dataPermissionList.DataPermissionObjectIdstringデータ権限オブジェクトID。例えばナレッジベース権限の場合はそのナレッジベースのID
successbooleanリクエスト成功の有無
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"roleId": "123456",
"roleName": "ナレッジベース訪問者",
"dataPermissionList": [
{
"BusinessTreeType": 1,
"DataPermissionObjectId": "123456"
}
]
}
]
}

ユーザーに関連付けられているロールを取得する

  • APIエンドポイント:v1/openapi/user/{userCode}/roles

  • HTTPメソッド:get

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEMEアクセストークンを指定。値の形式:openapi {access_token}
  • Content Type:application/json
  • ルートパラメータ:
パラメータ名必須デフォルト値説明
userCodestringなしユーザーIDまたはユーザー名
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user/123456/roles' \
--header 'Authorization: openapi {access_token}' \
  • レスポンスボディ:
フィールド名説明
dataarrayレスポンスデータオブジェクト
data.roleIdstringロールID
data.roleNamestringロール名
data.dataPermissionListarrayユーザーがこのロールにおけるデータ権限
data.dataPermissionList.BusinessTreeTypenumberアプリケーションタイプ
data.dataPermissionList.DataPermissionObjectIdstringデータ権限オブジェクトID。例えばナレッジベース権限の場合はそのナレッジベースのID
successbooleanリクエスト成功の有無
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"roleId": "123456",
"roleName": "ナレッジベース訪問者",
"dataPermissionList": [
{
"BusinessTreeType": 1,
"DataPermissionObjectId": "123456"
}
]
}
]
}

ユーザーロール関係の変更

  • APIエンドポイント:v1/openapi/user/{userCode}/roles

  • HTTPメソッド:put

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEMEアクセストークンを指定。値の形式:openapi {access_token}
  • Content Type:application/json
  • ルートパラメータ:
パラメータ名必須デフォルト値説明
userCodestringなしユーザーIDまたはユーザー名
  • リクエストボディ:
パラメータ名必須デフォルト値説明
arrayなしロールID配列またはロール名配列。配列内はすべてIDかすべて名前で統一してください。
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user/123456/roles' \
--header 'Authorization: openapi {access_token}' \
{
["1","3","5"]
}
  • レスポンスボディ:
フィールド名説明
dataarrayレスポンスデータオブジェクト
data.roleIdstringロールID
data.roleNamestringロール名
data.dataPermissionListarrayユーザーがこのロールにおけるデータ権限
data.dataPermissionList.BusinessTreeTypenumberアプリケーションタイプ
data.dataPermissionList.DataPermissionObjectIdstringデータ権限オブジェクトID。例えばナレッジベース権限の場合はそのナレッジベースのID
successbooleanリクエスト成功の有無
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"roleId": "123456",
"roleName": "ナレッジベース訪問者",
"dataPermissionList": [
{
"BusinessTreeType": 1,
"DataPermissionObjectId": "123456"
}
]
}
]
}

組織

組織の追加

  • APIエンドポイント:v1/openapi/organization

  • HTTPメソッド:post

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEMEアクセストークンを指定。値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストボディ:
パラメータ名必須デフォルト値説明
codestringなし組織コード。システム内で一意で重複不可
parentIdいいえstringなし親組織IDまたは親組織コードのいずれかを必須
parentCodeいいえstringなし親組織コードまたは親組織IDのいずれかを必須
namestringなし名称
locationいいえstringなし住所
remarksいいえstringなし備考
contactいいえstringなし連絡先
Infoいいえstringなし組織情報
Extensionいいえstringなし拡張情報
IsSubsidiaryいいえbooleanfalse子会社かどうか
sortいいえnumber0ソート順
isEnableいいえbooleanfalse有効/無効
externalいいえbooleanfalse内部/外部組織識別。false: 内部, true: 外部
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/organization' \
--header 'Authorization: openapi {access_token}' \
--data '{
"code": "123456",
"parentId": "12345",
"name": "組織名",
"location": "住所"
} '
  • レスポンスボディ:
フィールド名説明
dataobjectレスポンスデータオブジェクト
data.idstring組織ID
data.codestring組織コード
data.parentIdstring親組織ID
data.parentNamestring親組織名
data.namestring名称
data.locationstring住所
data.remarksstring備考
data.contactstring連絡先
data.Infostring組織情報
data.Extensionnumber拡張情報
data.IsSubsidiaryboolean子会社かどうか
data.sortnumberソート順
data.isEnableboolean有効/無効
data.externalboolean内部/外部組織識別
successbooleanリクエスト成功の有無
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"id": "123456",
"code": "123456",
"parentId": "12345",
"name": "組織名",
"location": "住所"
}
]
}

組織の更新

  • APIエンドポイント:v1/openapi/organization

  • HTTPメソッド:put

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEMEアクセストークンを指定。値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストボディ:
パラメータ名必須デフォルト値説明
idいいえstringなし組織IDまたはコードのいずれかを必須
codeいいえstringなし組織コードまたはIDのいずれかを必須
parentIdいいえstringなし親組織IDまたは親組織コードのいずれかを必須
parentCodeいいえstringなし親組織コードまたは親組織IDのいずれかを必須
namestringなし名称
locationいいえstringなし住所
remarksいいえstringなし備考
contactいいえstringなし連絡先
Infoいいえstringなし組織情報
Extensionいいえstringなし拡張情報
IsSubsidiaryいいえbooleanfalse子会社かどうか
sortいいえnumber0ソート順
isEnableいいえbooleanfalse有効/無効
externalいいえbooleanfalse内部/外部組織識別。false: 内部, true: 外部
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/organization' \
--header 'Authorization: openapi {access_token}' \
--data '{
"code": "123456",
"parentId": "12345",
"name": "組織名",
"location": "住所"
} '
  • レスポンスボディ:
フィールド名説明
dataobjectレスポンスデータオブジェクト
data.idstring組織ID
data.codestring組織コード
data.parentIdstring親組織ID
data.parentNamestring有効かどうか
data.namestring名称
data.locationstring住所
data.remarksstring備考
data.contactstring連絡先
data.Infostring組織情報
data.Extensionnumber拡張情報
data.IsSubsidiaryboolean子会社かどうか
data.sortnumberソート順
data.isEnableboolean有効/無効
data.externalboolean内部/外部組織識別
successbooleanリクエスト成功の有無
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"id": "123456",
"code": "123456",
"parentId": "12345",
"name": "組織名",
"location": "住所"
}
]
}

組織の削除

  • エンドポイント:v1/openapi/organization

  • HTTPメソッド:delete

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEME access tokenを入力。値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストボディ:
パラメータ名必須デフォルト説明
arrayなし組織Id配列または組織Code配列。配列内はIdのみかCodeのみで統一すること。
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/organization' \
--header 'Authorization: openapi {access_token}' \
--data '['org1','org2']'
  • レスポンスボディ:
フィールド名説明
successbooleanリクエストの成功可否
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": ""
}

ツリー状組織構造の取得

  • エンドポイント:v1/openapi/organization/tree

  • HTTPメソッド:get

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEME access tokenを入力。値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストクエリパラメータ:
パラメータ名必須デフォルト説明
externalいいえbooleanfalse外部組織かどうか
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/organization/tree?external=false' \
--header 'Authorization: openapi {access_token}' \
  • レスポンスボディ:
フィールド名説明
dataarrayレスポンスデータオブジェクト
data.nodeIdstring組織ID
data.nodeNamestring組織名
data.parentNodeIdstring親組織Id
data.codestring組織コード
data.pathstringルートノードから現在ノードまでのパス--ノードを通ったid('/'で区切る)
data.externalboolean内部・外部組織識別
data.childNodeListarray子組織
successbooleanリクエストの成功可否
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"isExternal": false,
"sort": 1,
"nodeId": "4034994050380595200",
"nodeName": "内部組織",
"path": "4034994050380595200/4419926899526991872",
"parentNodeId": "-1",
"childNodeList": [
{
"isExternal": false,
"sort": 1,
"nodeId": "4419926899526991872",
"nodeName": "IT",
"path": "4034994050380595200/4419926899526991872",
"parentNodeId": "4034994050380595200",
}
]
}
]
}

ユーザー組織関係に基づくユーザー取得(ページネーション)

  • エンドポイント:v1/openapi/organization/getAllOrgUserPageList

  • HTTPメソッド:post

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEME access tokenを入力。値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストボディ:
パラメータ名必須デフォルト説明
orderFieldstringなしソートに使用するフィールド。Idは時間情報を含むため、作成日時のソートに利用可能。
orderTypestringなしソートタイプ。asc: 昇順, desc: 降順
conditionsいいえarrayなし検索条件。複数指定時はAND条件となる。
conditions.fieldNameいいえstringなし検索条件のフィールド名(例:organizationId)
conditions.fieldValueいいえstringなし検索条件の値
conditions.conditionalTypeいいえnumber0検索条件の比較タイプ。0: 完全一致, 1: あいまい一致, 2: より大きい, 3: 以上, 4: より小さい, 5: 以下, 6: 含む(in), 7: 含まない(not in), 8: 左あいまい, 9: 右あいまい, 10: 不等, 11: nullまたは空, 12: 空でない, 13: notLike
pageIndexnumberなしページ番号
pageSizenumberなし1ページあたりの件数
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/organization/getAllOrgUserPageList' \
--header 'Authorization: openapi {access_token}' \
{
"orderField": "id",
"orderType": "desc",
"conditions": [
{
"fieldName": "organizationName",
"fieldValue": "123456",
"conditionalType": 0
}
],
"pageIndex": 1,
"pageSize": 15
}
  • レスポンスボディ:
フィールド名説明
dataarrayページネーションデータ
data.userIdstringユーザーID
data.accountstringユーザー名
data.accountIdbooleanアカウントID
data.realNamestring本名
data.organizationNamestring組織名
data.organizationIdstring組織ID
data.organizationParentIdstring親組織ID
data.Emailstringメールアドレス
data.Sortnumberソート番号
data.Externalboolean内部・外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー
pageIndexnumber現在のページ番号
pageSizenumberページサイズ
totalCountnumber総件数
successbooleanリクエストの成功可否
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
{
"data": [
{
"account": "user1",
"accountId": "123456",
"userId": "123456",
"realName": "user1",
"organizationName": "org1",
"organizationId": "123456",
"external": false,
"organizationParentId": "12345",
"sort": 1,
"email": ""
}
],
"pageSize": 15,
"pageIndex": 1,
"totalCount": 1,
"success": true,
"msg": null
}

ユーザー組織関係の追加

  • エンドポイント:v1/openapi/organization/relationship

  • HTTPメソッド:post

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEME access tokenを入力。値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストボディ:
パラメータ名必須デフォルト説明
organizationIdstringなし組織Id
userIdstringなしユーザーId
sortいいえnumber0ソート番号
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/organization/relationship' \
--header 'Authorization: openapi {access_token}' \
--data '[{
"organizationId": "123456",
"userId": "12345"
}] '
  • レスポンスボディ:
フィールド名説明
successbooleanリクエストの成功可否
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": ""
}

ユーザー組織関係の削除

  • エンドポイント:v1/openapi/organization/relationship

  • HTTPメソッド:delete

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEME access tokenを入力。値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストボディ:
パラメータ名必須デフォルト説明
organizationIdsarrayなし組織Id
userIdsarrayなしユーザーId
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/organization/relationship' \
--header 'Authorization: openapi {access_token}' \
--data '{
"organizationIds": ["123456"],
"userIds": ["12345"]
} '
  • レスポンスボディ:
フィールド名説明
successbooleanリクエストの成功可否
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
{
"success": true,
"msg": ""
}

組織配下のユーザー検索(ページネーション)

  • エンドポイント:v1/openapi/organization/getUserPages

  • HTTPメソッド:post

  • リクエストヘッダー:

パラメータ名必須説明
AuthorizationstringSERVICEME access tokenを入力。値の形式:openapi {access_token}
  • Content Type:application/json
  • リクエストボディ:
パラメータ名必須デフォルト説明
orderFieldstringなしソートに使用するフィールド。Idは時間情報を含むため、作成日時のソートに利用可能。
orderTypestringなしソートタイプ。asc: 昇順, desc: 降順
conditionsいいえarrayなし検索条件。複数指定時はAND条件となる。
conditions.fieldNameいいえstringなし検索条件のフィールド名。OrganizationIdまたはOrganizationCodeのいずれかを必ず指定すること。
conditions.fieldValueいいえstringなし検索条件の値
conditions.conditionalTypeいいえnumber0検索条件の比較タイプ。0: 完全一致, 1: あいまい一致, 2: より大きい, 3: 以上, 4: より小さい, 5: 以下, 6: 含む(in), 7: 含まない(not in), 8: 左あいまい, 9: 右あいまい, 10: 不等, 11: nullまたは空, 12: 空でない, 13: notLike
pageIndexnumberなしページ番号
pageSizenumberなし1ページあたりの件数
  • リクエスト例:
curl --location 'http://localhost/v1/openapi/user/pageList' \
--header 'Authorization: openapi {access_token}' \
{
"orderField": "id",
"orderType": "desc",
"conditions": [
{
"fieldName": "OrganizationCode",
"fieldValue": "org1",
"conditionalType": 0
}
],
"pageIndex": 1,
"pageSize": 15
}
  • レスポンスボディ:
フィールド名説明
dataarrayページネーションデータ
data.idstringユーザーID
data.accountstringユーザー名
data.namestring本名
data.ownerMainDepartmentstringユーザーの主担当部署
data.sortnumberソート番号
data.statusbooleanユーザーの有効状態
data.createdatetimeユーザーの作成日時
pageIndexnumber現在のページ番号
pageSizenumberページサイズ
totalCountnumber総件数
successbooleanリクエストの成功可否
msgstringリクエストのメッセージ(あれば)
  • レスポンス例:
json
{
"data": [
{
"accountId": "123456",
"userId": "123456",
"userName": "user1",
"realName": "張三"
}
],
"pageSize": 15,
"pageIndex": 1,
"totalCount": 1,
"success": true,
"msg": null
}