Platio 管理 API プログラミングガイド

Platio 管理 APIは、Platio APIの一部で、プログラミングを通して、Platio Studioで作成したミニアプリのユーザーを操作するためのWeb APIです。

このドキュメントは、Platio API プログラミングガイドに目を通していることを前提としています。まだ、ご覧になっていない場合は、まずそちらをご覧ください。

概要

準備

Platio 管理 APIを利用するには、アプリケーションを作成し、配布する必要あります。配布したアプリケーションに管理APIがアクセスできるユーザーを追加してください。ユーザーを作成、更新する時に「APIでのレコードや添付ファイルへのアクセスを許可」に加えて「APIでのユーザーの管理を許可」の両方をチェックします。

APIのエンドポイントや、認証方法などについては、Platio API プログラミングガイドをご覧ください。

制限

リクエスト回数以外のAPIの制限については、Platio API プログラミングガイドをご覧ください。

リクエスト回数

一定時間内に使用できるリクエストの回数には、いくつかの制限があります。以下が現在の制限ですが、これらは変更される可能性があります。これらの制限は、アプリケーション単位で適用されます。

API Premiumプランの制限 Enterpriseプランの制限
ユーザーリスト・ユーザーの取得 N/A 1時間あたり2,000リクエスト
ユーザーの作成・更新・削除 N/A 1時間あたり1,000リクエスト

これらの制限は、同じグループ内の全てのリクエストに適用されます。回数制限は毎時リセットされます。

リクエスト回数が制限に達すると、429ステータスコードと共に、TOO_MANY_REQUESTSエラーレスポンスが返されます。

Platio管理APIを使う

この章では、いくつかの例を挙げて、どのようにPlatio 管理 APIを使うのかを説明します。詳細については、Platio API リファレンスをご覧ください。

ユーザーの操作

ユーザーの操作を行うAPIでは、共通ユーザー機能が有効かどうか、チーム機能が有効かどうかによって、APIで行える操作、APIに渡す情報、APIから返される情報が異なる事があります。操作対象の組織・アプリケーションの設定をご確認の上、ご利用ください。

ユーザーリストの取得

ユーザーのリストを取得するには、GETリクエストを使用します。このAPIは、アプリケーションの最初の100ユーザーを、名前で昇順にソートして返します。

curl -u uf598c3f:mypassword \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users'

次の100ユーザーを取得するには、skipパラメーターを使用します。

curl -u uf598c3f:mypassword \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users?skip=100'

全てのユーザーを取得するには、skipパラメーターを増やしながら、空の配列が返されるまで、繰り返しこのAPIを呼び出します。

また、limitパラメーターを使用して、取得するユーザー数を指定することもできます。

curl -u uf598c3f:mypassword \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users?limit=30'

ユーザーを検索することもできます。searchパラメーターに文字列を指定すると、ユーザーの名前・メールアドレス・プロファイル名・チーム名に、指定した文字列が、大文字・小文字を区別せずに含まれるユーザーを返します。

共通ユーザー機能が有効な場合、指定したアプリケーションで設定済みのユーザーのみを返すことに注意してください。

このAPIは、ユーザーのリストを返します。

[
  {
    "id": "u37367df",
    "name": "User",
    "email": "user@example.com",
    "admin": false,
    "apiAccess": true,
    "managementApiAccess": true,
    "profile": {
      "name": "デフォルト"
    },
    "disabled": false
  },
  {
    "id": "u2cc0613",
    "name": "User2",
    "email": "user2@example.com",
    "admin": false,
    "apiAccess": false,
    "managementApiAccess": false,
    "profile": {
      "name": "デフォルト"
    },
    "disabled": false
  }
]

チーム機能が有効な場合には、各ユーザーのチームの情報が含まれます。

[
  {
    "id": "u4d6a6dd",
    "name": "User",
    "email": "user@example.com",
    "admin": false,
    "apiAccess": true,
    "managementApiAccess": true
    "profile": {
      "name": "デフォルト"
    },
    "team": {
      "name": "デフォルト"
    },
    "teamLeader": false,
    "disabled": false
  },
  {
    "id": "u1ee8203",
    "name": "User2",
    "email": "user2@example.com",
    "admin": false,
    "apiAccess": true,
    "managementApiAccess": true,
    "profile": {
      "name": "デフォルト"
    },
    "team": {
      "name": "デフォルト"
    },
    "teamLeader": false,
    "disabled": false
  }
]

ユーザーの取得

ユーザーを取得するには、ユーザーに対してGETリクエストを使用します。

curl -u uf598c3f:mypassword \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users/u37367df'

このAPIは、指定されたユーザーを返します。

{
  "id": "u37367df",
  "name": "User",
  "email": "user@example.com",
  "admin": false,
  "apiAccess": true,
  "managementApiAccess": true,
  "profile": {
    "name": "デフォルト"
  },
  "disabled": false
}

チーム機能が有効な場合には、チームの情報が含まれます。

{
  "id": "u37367df",
  "name": "User",
  "email": "user@example.com",
  "admin": false,
  "apiAccess": true,
  "managementApiAccess": true,
  "profile": {
    "name": "デフォルト"
  },
  "team": {
    "name": "デフォルト"
  },
  "teamLeader": false,
  "disabled": false
}

ユーザーの作成

ユーザーを作成するには、POSTリクエストを使用します。

共通ユーザー機能が無効な場合には、以下のようなリクエストを使用します。

curl -u uf598c3f:mypassword \
     -X POST \
     -H 'Content-Type: application/json' \
     -d '{
           "name": "User3",
           "email": "user3@example.com",
           "password": "Abcd1234",
           "admin": false,
           "apiAccess": true,
           "managementApiAccess": false,
           "profile": {
             "name": "デフォルト"
           }
         }' \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users'

チーム機能が有効な場合には、チームの情報を含めます。

curl -u uf598c3f:mypassword \
     -X POST \
     -H 'Content-Type: application/json' \
     -d '{
           "name": "User3",
           "email": "user3@example.com",
           "password": "Abcd1234",
           "admin": false,
           "apiAccess": true,
           "managementApiAccess": false,
           "profile": {
             "name": "デフォルト"
           },
           "team": {
             "name": "デフォルト"
           },
           "teamLeader: true
         }' \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users'

すべてのプロパティを指定する必要があります。また、プロファイルやチームは名前で指定します。

プロパティによっては、指定できる値に制限があります。

  1. nameプロパティには、1文字以上64文字以下で、「_」から始まらない文字列を指定します。
  2. passwordプロパティには、8文字以上の、小文字、大文字、数字をすべて1文字以上含む文字列を指定します。
  3. profile.nameプロパティには、存在するプロファイルの名前を指定します。
  4. team.nameプロパティには、存在するチームの名前を指定します。

共通ユーザー機能が有効な場合には、このAPIは、新しいユーザーを作成する代わりに、既存の共通ユーザーをこのアプリケーションで設定します。そのため、呼び出し方にいくつかの違いがあります。

  1. nameプロパティには、既存の、このアプリケーションで未設定な共通ユーザーの名前を指定します。
  2. password, emailプロパティは指定できません。
curl -u uf598c3f:mypassword \
     -X POST \
     -H 'Content-Type: application/json' \
     -d '{
           "name": "User3",
           "admin": false,
           "apiAccess": true,
           "managementApiAccess": false,
           "profile": {
             "name": "デフォルト"
           }
         }' \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users'

このAPIは作成したユーザーを返します。

{
  "id": "u37367df",
  "name": "User3",
  "email": "user3@example.com",
  "admin": false,
  "apiAccess": true,
  "managementApiAccess": false,
  "profile": {
    "name": "デフォルト"
  },
  "disabled": false
}

チーム機能が有効な場合には、チームの情報が含まれます。

{
  "id": "u37367df",
  "name": "User",
  "email": "user@example.com",
  "admin": false,
  "apiAccess": true,
  "managementApiAccess": false,
  "profile": {
     "name": "デフォルト"
  },
  "team": {
     "name": "デフォルト"
  },
  "teamLeader": false,
  "disabled": false
}

ユーザーの更新

既に存在するユーザーを更新するには、ユーザーに対してPUTリクエストを使用します。

curl -u uf598c3f:mypassword \
     -X PUT \
     -H 'Content-Type: application/json' \
     -d '{
           "email": "new-email@example.com",
           "admin": true,
           "apiAccess": true,
           "managementApiAccess": false,
           "profile": {
             "name": "デフォルト"
           },
           "disabled": false
         }' \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users/u37367df'

チーム機能が有効な場合には、チームの情報を含めます。

curl -u uf598c3f:mypassword \
     -X PUT \
     -H 'Content-Type: application/json' \
     -d '{
           "email": "new-email@example.com",
           "admin": true,
           "apiAccess": true,
           "managementApiAccess": false,
           "profile": {
             "name": "デフォルト"
           },
           "team": {
             "name": "デフォルト"
           },
           "teamLeader: true,
           "disabled": false
         }' \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users/u37367df'

password以外のすべてのプロパティを指定する必要があります。また、プロファイルやチームは名前で指定します。

共通ユーザー機能が有効な場合には、呼び出し方にいくつかの違いがあります。

  1. password, emailプロパティは指定できません。
curl -u uf598c3f:mypassword \
     -X PUT \
     -H 'Content-Type: application/json' \
     -d '{
           "admin": true,
           "apiAccess": true,
           "managementApiAccess": false,
           "profile": {
             "name": "デフォルト"
           },
           "disabled": false
         }' \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users/u37367df'

このAPIは更新したユーザーを返します。

{
  "id": "u37367df",
  "name": "User",
  "email": "email@example.com",
  "admin": true,
  "apiAccess": true,
  "managementApiAccess": false,
  "profile": {
    "name": "デフォルト"
  },
  "disabled": false
}

チーム機能が有効な場合には、チームの情報が含まれます。

{
  "id": "u37367df",
  "name": "User",
  "email": "email@example.com",
  "admin": true,
  "apiAccess": true,
  "managementApiAccess": false,
  "profile": {
    "name": "デフォルト"
  },
  "team": {
    "name": "デフォルト"
  },
  "teamLeader": false,
  "disabled": false
}

ユーザーの削除

既に存在するユーザーを削除するには、ユーザーに対してDELETEリクエストを使用します。

共通ユーザー機能が有効な場合には、このAPIは使用できません。

curl -u uf598c3f:mypassword \
     -X DELETE \
     'https://api.plat.io/v1/pkyfjjjmlyffnlgeb5oh2eqs2aa/management/users/u37367df'

このAPIは、204ステータスコードと共に空のレスポンスを返します。