MENU

Akerun Developersへようこそ。

Akerun Developersは「Akerun入退室管理システム」を利用する開発者に向けて、Akerun APIについての情報を提供しています。

はじめに

Akerun APIでは、Akerunでの入退室履歴の取得鍵の発行遠隔からの施錠・解錠など、Akerunの様々な機能を使うことができます。

Akerun APIを使って、Akerunをさらに便利に使いこなしましょう。

APIバージョン

このページではAkerun API (v3)の仕様について説明しています。

以前のバージョンのAkerun API (v2)については、こちらをご覧ください。

お申し込み

API利用をご希望の方はこちらのお申し込みフォームより以下の情報をそえてお申込みください。

  • リダイレクトURI
  • 利用したいスコープ

手続きが完了しましたらお申し込みフォームに記入されたメールアドレスへ案内をお送りします。

リダイレクトURIについて

リダイレクトURIは、OAuth2.0のアクセストークンを発行するフローで必要となります。 詳しくはOAuth 2.0の仕様をご覧ください。

また、プロトコルはhttpsのみに制限していますので予めご了承下さい。

スコープについて

スコープ一覧から、OAuthアプリケーションに必要なスコープのリストをお送りください。

リクエスト

Akerun API へのリクエストの文字エンコーディングはUTF-8のみに対応しています。

レスポンス

Akerun API のレスポンスはJSONオブジェクトを返しています。 文字エンコーディングはUTF-8です。

認証

Akerun API v3はOAuth 2.0の仕様に準拠しています。

認証コードの取得

認証コード取得URL

https://api.akerun.com/oauth/authorize/?client_id=851a5415a3df3fcfc634364b947c5f3c6949683669625c4a4264b83a18981e27&redirect_uri=https://akerun.com/&response_type=code

申込時に指定したredirect_uriと、弊社から送付されたclient_idを使い認証コード取得URLにアクセスし、表示されるログインフォームにて、Akerunアカウントでログインを行ってください。

ログイン後にredirect_uriに付与されるクエリパラメーターのcodeはアクセストークンの取得時に必要となります。 認証コードの有効期間は発行から30分です。

HTTP リクエスト

GET https://api.akerun.com/oauth/authorize/?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code

アクセストークンの作成

Example Request

curl -X POST "https://api.akerun.com/oauth/token" \
     -F grant_type=authorization_code \
     -F client_id=851a5415a3df3fcfc634364b947c5f3c6949683669625c4a4264b83a18981e27 \
     -F client_secret=2b3d5efe93c135a87f49a0b8440d523d160e9a5f8b008d9969a13e40191017da \
     -F code=c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252 \
     -F redirect_uri=https://akerun.com/

Example Response

{
  "access_token": "a8e144f4bac98c33814407999e5b1216b898b67605ae691f35beac7fb24ad39f",
  "token_type": "bearer",
  "refresh_token": "14ba1946cf8a3dg1fd3de49c4b2efe9e9c24d44efa64762bbc36e71edbffb424",
  "expires_in": 7776000,
  "created_at": 1500953017
}

API の利用にはアクセストークンが必要です。 Example Requestを参考にアクセストークンの作成を行なってください。

HTTP リクエスト

POST https://api.akerun.com/oauth/token

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
grant_type*Stringauthorization_code
client_id*StringOAuthアプリケーションのクライアントID
client_secret*StringOAuthアプリケーションのクライアントシークレット
code*StringAkerunアカウントにログイン後redirect_uriに付与されていた認証コード
redirect_uri*StringOAuthアプリケーションに設定されたredirect_uri

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
access_tokenStringアクセストークン
token_typeStringアクセストークンの種類
refresh_tokenStringアクセストークンを再発行する時に必要なトークン
expires_inStringアクセストークンが無効化されるまでの秒数
created_atStringアクセストークン が作成された日時

エラーレスポンス

CodeHTTP Status CodeDescription
unsupported_grant_type400grant_typeが不正
invalid_grant400code、client_id、client_secret、redirect_uriを使った認証に失敗

アクセストークンの再発行

Example Request

curl -X POST "https://api.akerun.com/oauth/token" \
     -F grant_type=refresh_token \
     -F client_id=851a5415a3df3fcfc634364b947c5f3c6949683669625c4a4264b83a18981e27 \
     -F client_secret=2b3d5efe93c135a87f49a0b8440d523d160e9a5f8b008d9969a13e40191017da \
     -F refresh_token=e6621710f55da19012bf7412a7675e654ca44351bd8659af41726c559d0cf848

Example Response

{
  "access_token": "56937ebdd4489cf705d4ec3be38c72d7d6789c0591e8c0c34a2ddcc75e8cd295",
  "token_type": "bearer",
  "refresh_token": "872eb483a170e2ecfeee9eea2db31543785cf48cfc4f39838238c94f363d582b",
  "expires_in": 7776000,
  "created_at": 1500953017
}

アクセストークンを再発行します。

アクセストークンの有効期間は発行から90日間です。期限が過ぎると、そのアクセストークンではAPIを利用することができなくなりますが、同時に発行されたリフレッシュトークンを使ってアクセストークンを再発行することができます。

アクセストークンの再発行は、アクセストークンの期限切れ前でも期限切れ後でも可能です。再発行したアクセストークンの有効期間は再発行した時点から90日間です。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

POST https://api.akerun.com/oauth/token

パラメータ

(* 必須)

ParameterTypeDescription
grant_type*Stringrefresh_token
client_id*StringOAuthアプリケーションのクライアントID
client_secret*StringOAuthアプリケーションのクライアントシークレット
refresh_token*Stringアクセストークンを更新する時に使うリフレッシュトークン

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
access_tokenStringアクセストークン
token_typeStringアクセストークンの種類
refresh_tokenStringアクセストークンを更新する時に使うリフレッシュトークン
expires_inStringアクセストークンが無効化されるまでのcreated_atから数えた秒数
created_atStringアクセストークン が作成された日時

エラーレスポンス

CodeHTTP Status CodeDescription
unsupported_grant_type400grant_typeが不正
invalid_grant400client_idclient_secretrefresh_tokenを使った認証に失敗

アクセストークンの無効化

Example Request

curl -X POST "https://api.akerun.com/oauth/revoke" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F client_id=851a5415a3df3fcfc634364b947c5f3c6949683669625c4a4264b83a18981e27 \
     -F client_secret=2b3d5efe93c135a87f49a0b8440d523d160e9a5f8b008d9969a13e40191017da \
     -F token=c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252

アクセストークンを無効化します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

POST https://api.akerun.com/oauth/revoke

パラメータ

(* 必須)

ParameterTypeDescription
client_id*StringOAuthアプリケーションのクライアントID
client_secret*StringOAuthアプリケーションのクライアントシークレット
token*String無効化したいアクセストークンまたはリフレッシュトークン

成功レスポンス

HTTP STATUS CODE: 200

無し

エラーレスポンス

CodeHTTP Status CodeDescription
invalid_client401ヘッダーに指定されたアクセストークンが不正、client_id、client_secretを使った認証に失敗

アクセストークンの情報を取得

Example Request

curl -X GET "https://api.akerun.com/oauth/token/info" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Example Response

{
  "application_name": "OAuth Application 1",
  "access_token": "45379971b810636443c20dcd7d06814e36bd4e100626f531184068af13fcc574",
  "refresh_token": "e6621710f55da19012bf7412a7675e654ca44351bd8659af41726c559d0cf848",
  "created_at": "2017-9-08T13:52:48Z",
  "expires_at": "2017-12-08T13:52:48Z"
}

アクセストークン の情報を取得します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/oauth/token/info

パラメータ

無し

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
application_nameStringアプリケーションの名前
tokenString自分のアクセストークン
refresh_tokenStringアクセストークンの更新に使うリフレッシュトークン
created_atStringアクセストークン が作成された日時
expires_atStringアクセストークン の期限が切れる日時

エラーレスポンス

CodeHTTP Status CodeDescription
invalid_request401ヘッダーに指定されたアクセストークンが不正

OAuth スコープ

スコープについて

スコープはPhotosynthがアプリケーションごとに与えた後、トークンオーナーがアクセストークンごとに許諾の設定を行います。Photosynthとトークンオーナー双方から与えられたスコープのみ有効となります。 必要なスコープはAPIのエンドポイントごとに異なり、不足している場合はエラーとなります。

スコープの一覧

API v3で使用されているスコープの一覧です。

スコープDescription
account:organization:readトークンオーナーが所属している組織の読み込み権限
organization:read組織情報の読み込み権限
organization:akerun:read組織に属するAkerunの読み込み権限
organization:akerun:write組織に属するAkerunの書き込み権限
organization:user:read組織のユーザーの読み込み権限
organization:user:write組織のユーザーの書き込み権限
organization:key:read組織に属するAkerunの鍵の読み込み権限
organization:key:write組織に属するAkerunの鍵の書き込み権限
organization:nfc:write組織に属するNFCの書き込み権限
organization:access:read組織に属するAkerunの入退室履歴の読み込み権限
organization:akerun:lock組織に属するAkerunの施錠・解錠
organization:akerun:state組織に属するAkerunの状態取得
organization:akerun:setting組織に属するAkerunの設定変更

スコープの設定

アクセストークンのスコープの設定は、アプリ連携を行った本人のみが行えます。

手順

  1. Akerun Managerの「連携アプリ」ページ から、アクセストークンを選択します。

  2. アクセストークンに紐付いているアカウントと組織一覧が表示されるので、スコープの操作をしたいアカウント、もしくは組織の右側の「設定」を選択します。

  3. 許可をしたいスコープにチェックを入れ「設定を更新する」を押すとアクセストークンのスコープが更新されます。

組織

組織一覧

Example Request

curl -X GET "https://api.akerun.com/v3/organizations" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Example Response

{
  "organizations": [
    {
      "id": "O-12345-67890"
    },
    {
      "id": "O-78924-45268"
    },
    {
      "id": "O-16542-60849"
    }
  ]
}

トークンオーナーが属する組織IDを一覧で取得します。

組織ID一覧はToken オーナーが組織に属した順で返ります。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations

必要なスコープ

account:organization:read

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
limitInteger取得件数(1から1,000の数字)100
id_afterStringデータ取得の開始位置
id_beforeStringデータ取得の終了位置

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
organizationsArray[Organizaiton Object]組織オブジェクトの配列
organizations >
id
String組織のID

エラーレスポンス

Error CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない

組織詳細

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Example Response

{
  "organization": {
    "id": "O-12345-67890",
    "name": "Photosynth"
  }
}

組織の詳細情報を取得します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}

必要なスコープ

organization:read

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
organizationsArray[Organizaiton Object]組織オブジェクトの配列
organizations >
id
String組織のID
organizations >
name
String組織の名前

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403トークンオーナーが組織のマネージャー、またはスーパーマネージャーではない
organization_not_found404指定した組織が存在しない

Akerun

Akerun一覧

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/akeruns" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F limit=100 \
     -F akerun_ids[]=A1030001 \
     -F akerun_ids[]=A1030002 \
     -F akerun_ids[]=A1030004 \
     -F id_after=A1030001 \
     -F id_before=A1030004

Example Response

{
  "akeruns": [
    {
      "id": "A1030002",
      "name": "執務室表口",
      "image_url": "https://akerun.com/akerun_example1.jpg",
      "open_door_alert": true,
      "open_door_alert_second": 30,
      "push_button": false,
      "normal_sound_volume": 50,
      "alert_sound_volume": 100,
      "battery_percentage": 100,
      "autolock": true,
      "autolock_off_schedule": {
        "start_time": "10:00+09:00",
        "end_time": "19:00+09:00",
        "days_of_week": [1,2,3,4,5]
      },
      "akerun_remote": {
        "id": "TG11100002"
      },
      "nfc_reader_inside": {
        "id": "NP0000001",
        "battery_percentage": 100
      },
      "nfc_reader_outside": {
        "id": "NP0000002",
        "battery_percentage": 100
      },
      "door_sensor": {
        "id": "W0000001",
        "battery_percentage": 100
      }
    }
  ]
}

組織に属するAkerunの一覧を取得します。

Akerun一覧は組織に属した順で返ります。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/akeruns

必要なスコープ

organization:akerun:read

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
limitInteger取得件数(1から1,000の数字)100
akerun_idsArray[String]絞り込みたいAkerunのID
id_afterStringデータ取得の開始位置
id_beforeStringデータ取得の終了位置

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
akerunsArray[Akerun Object]Akerunオブジェクトの配列
akeruns >
id
StringAkerunのID
akeruns >
name
StringAkerunの名前
akeruns >
image_url
String/NULLAkerunの画像
akeruns >
open_door_alert
Booleanドア開けっ放し警告(true=有効,false=無効)
akeruns >
open_door_alert_second
Integerドア開けっ放し警告までの秒数(30,60,180のいずれか)
akeruns >
push_button
Booleanプッシュボタンでの施錠・解錠(true=有効,false=無効)
akeruns >
normal_sound_volume
Integer操作音(0から100の数字)
akeruns >
alert_sound_volume
Integer警告音(0から100の数字)
akeruns >
battery_percentage
Integer電池残量(0から100の数字)
akeruns >
autolock
Booleanオートロック
akeruns >
autolock_off_schedule
Object/NULLオートロックオフスケジュール
akeruns >
autolock_off_schedule >
start_time
Integerオートロックオフ開始時刻(時刻とタイムゾーン ex: 12:30+09:00)
akeruns >
autolock_off_schedule >
end_time
Integerオートロックオフ終了時刻(時刻とタイムゾーン ex: 12:30+09:00)
akeruns >
autolock_off_schedule >
days_of_week
Array[Integer]オートロックオフ曜日(0=日曜日..6=土曜日)
akeruns >
akerun_remote
Remote ObjectAkerun Remote
akeruns >
akerun_remote > id
IntegerAkerun RemoteのID
akeruns >
nfc_reader_inside
NFC Reader Inside Object内側のNFCリーダー
akeruns >
nfc_reader_inside >
id
String内側のNFCリーダーのID
akeruns >
nfc_reader_inside >
battery_percentage
Integer内側のNFCリーダーの電池残量
akeruns >
nfc_reader_outside
NFC Reader Outside Object外側のNFCリーダー
akeruns >
nfc_reader_outside >
id
String外側のNFCリーダーのID
akeruns >
nfc_reader_outside >
battery_percentage
Integer外側のNFCリーダーの電池残量
akeruns >
door_sensor
Door Sensor Objectドアセンサー
akeruns >
door_sensor >
id
StringドアセンサーのID
akeruns >
door_sensor >
battery_percentage
Integerドアセンサーの電池残量

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
akerun_not_found404id_after,id_beforeで指定したAkerunが組織に存在しない

Akerun詳細

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/akeruns/A1030001" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Example Response

{
  "akerun": {
    "id": "A1030001",
    "name": "執務室表口",
    "image_url": "https://akerun.com/akerun_example1.jpg",
    "open_door_alert": true,
    "open_door_alert_second": 30,
    "push_button": false,
    "normal_sound_volume": 50,
    "alert_sound_volume": 100,
    "battery_percentage": 100,
    "autolock": true,
    "autolock_off_schedule": {
      "start_time": "10:00+09:00",
      "end_time": "19:00+09:00",
      "days_of_week": [1,2,3,4,5]
    },
    "akerun_remote": {
      "id": "TG11100001"
    },
    "nfc_reader_inside": {
      "id": "NP0000001",
      "battery_percentage": 100
    },
    "nfc_reader_outside": {
      "id": "NP0000002",
      "battery_percentage": 100
    },
    "door_sensor": {
      "id": "W0000001",
      "battery_percentage": 100
    }
  }
}

組織のAkerunの情報を取得します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/akeruns/{AKERUN_ID}

必要なスコープ

organization:akerun:read

パラメータ

(* 必須)

ParameterTypeDescription
organization_id*String組織のID
akerun_id*StringAkerunのID

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescriptionDefault
akerunAkerun ObjectAkerunオブジェクト
akerun >
id
StringAkerunのID
akerun >
name
StringAkerunの名前
akerun >
image_url
String/NULLAkerunの画像
akerun >
open_door_alert
Booleanドア開けっ放し警告(true=有効,false=無効)
akerun >
open_door_alert_second
Integerドア開けっ放し警告までの秒数(30,60,180のいずれか)
akerun >
push_button
Booleanプッシュボタンでの施錠・解錠(true=有効,false=無効)
akerun >
normal_sound_volume
Integer操作音(0から100の数字)
akerun >
alert_sound_volume
Integer警告音(0から100の数字)
akerun >
battery_percentage
Integer電池残量(0から100の数字)
akerun >
autolock
Booleanオートロック
akerun >
autolock_off_schedule
Object/NULLオートロックオフスケジュール
akerun >
autolock_off_schedule >
start_time
Integerオートロックオフ開始時刻(時刻とタイムゾーン ex: 12:30+09:00)
akerun >
autolock_off_schedule >
end_time
Integerオートロックオフ終了時刻(時刻とタイムゾーン ex: 12:30+09:00)
akerun >
autolock_off_schedule >
days_of_week
Array[Integer]オートロックオフ曜日(0=日曜日..6=土曜日)
akerun >
akerun_remote
Remote ObjectAkerun Remote
akerun >
akerun_remote > id
IntegerAkerun RemoteのID
akeruns >
nfc_reader_inside
NFC Reader Inside Object内側のNFCリーダー
akeruns >
nfc_reader_inside >
id
String内側のNFCリーダーのID
akeruns >
nfc_reader_inside >
battery_percentage
Integer内側のNFCリーダーの電池残量
akeruns >
nfc_reader_outside
NFC Reader Outside Object外側のNFCリーダー
akeruns >
nfc_reader_outside >
id
String外側のNFCリーダーのID
akeruns >
nfc_reader_outside >
battery_percentage
Integer外側のNFCリーダーの電池残量
akeruns >
door_sensor
Door Sensor Objectドアセンサー
akeruns >
door_sensor >
id
StringドアセンサーのID
akeruns >
door_sensor >
battery_percentage
Integerドアセンサーの電池残量

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
akerun_not_found404akerun_idで指定したAkerunが組織に存在しない

Akerun更新

Example Request

curl -X PUT "https://api.akerun.com/v3/organizations/O-12345-67890/akeruns/A1030001" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F akerun_name=執務室表口 \
     -F akerun_image=@/path/to/image.jpg

Example Response

{
  "akerun": {
    "id": "A1030001",
    "name": "執務室表口",
    "image_url": "https://akerun.com/akerun_example1.jpg",
    "open_door_alert": true,
    "open_door_alert_second": 30,
    "push_button": false,
    "normal_sound_volume": 50,
    "alert_sound_volume": 100,
    "battery_percentage": 100,
    "autolock": true,
    "autolock_off_schedule": {
      "start_time": "10:00+09:00",
      "end_time": "19:00+09:00",
      "days_of_week": [1,2,3,4,5]
    },
    "akerun_remote": {
      "id": "TG11100001"
    },
    "nfc_reader_inside": {
      "id": "NP0000001",
      "battery_percentage": 100
    },
    "nfc_reader_outside": {
      "id": "NP0000002",
      "battery_percentage": 100
    },
    "door_sensor": {
      "id": "W0000001",
      "battery_percentage": 100
    }
  }
}

組織のAkerunの情報を更新します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

PUT https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/akeruns/{AKERUN_ID}

必要なスコープ

organization:akerun:write

パラメータ

(* 必須)

ParameterTypeDescription
organization_id*String組織のID
akerun_id*StringAkerunのID
akerun_nameStringAkerunの名前(50文字以内)
akerun_imageFileAkerunの画像(空文字送信でデフォルト画像に更新)

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescriptionDefault
akerunAkerun ObjectAkerunオブジェクト
akerun >
id
StringAkerunのID
akerun >
name
StringAkerunの名前
akerun >
image_url
String/NULLAkerunの画像
akerun >
open_door_alert
Booleanドア開けっ放し警告(true=有効,false=無効)
akerun >
open_door_alert_second
Integerドア開けっ放し警告までの秒数(30,60,180のいずれか)
akerun >
push_button
Booleanプッシュボタンでの施錠・解錠(true=有効,false=無効)
akerun >
normal_sound_volume
Integer操作音(0から100の数字)
akerun >
alert_sound_volume
Integer警告音(0から100の数字)
akerun >
battery_percentage
Integer電池残量(0から100の数字)
akerun >
autolock
Booleanオートロック
akerun >
autolock_off_schedule
Object/NULLオートロックオフスケジュール
akerun >
autolock_off_schedule >
start_time
Integerオートロックオフ開始時刻(時刻とタイムゾーン ex: 12:30+09:00)
akerun >
autolock_off_schedule >
end_time
Integerオートロックオフ終了時刻(時刻とタイムゾーン ex: 12:30+09:00)
akerun >
autolock_off_schedule >
days_of_week
Array[Integer]オートロックオフ曜日(0=日曜日..6=土曜日)
akerun >
akerun_remote
Remote ObjectAkerun Remote
akerun >
akerun_remote >
id
IntegerAkerun RemoteのID
akeruns >
nfc_reader_inside
NFC Reader Inside Object内側のNFCリーダー
akeruns >
nfc_reader_inside >
id
String内側のNFCリーダーのID
akeruns >
nfc_reader_inside >
battery_percentage
Integer内側のNFCリーダーの電池残量
akeruns >
nfc_reader_outside
NFC Reader Outside Object外側のNFCリーダー
akeruns >
nfc_reader_outside >
id
String外側のNFCリーダーのID
akeruns >
nfc_reader_outside >
battery_percentage
Integer外側のNFCリーダーの電池残量
akeruns >
door_sensor
Door Sensor Objectドアセンサー
akeruns >
door_sensor >
id
StringドアセンサーのID
akeruns >
door_sensor >
battery_percentage
Integerドアセンサーの電池残量

エラーレスポンス

CodeHTTP Status CodeDescription
invalid_params400リクエストパラメータが不正
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
akerun_not_found404akerun_idで指定したAkerunが組織に存在しない

ユーザー

ユーザー一覧

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/users" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F limit=100 \
     -F id_after=U-12345-67890 \
     -F id_before=U-67890-12345 \
     -F user_code=1001

Example Response

{
  "users": [
    {
      "id": "U-47891-98710",
      "name": "Photosynth太郎",
      "mail": "taro@akerun.com",
      "image_url": "https://akerun.com/user_example1.jpg",
      "authority": "manager",
      "code": "1001",
      "nfcs": [
        {
          "id": "NA101010",
          "name": "アケルン太郎のNFC"
        }
      ]
    },
    {
      "id": "U-12562-69142",
      "name": "Photosynth太郎",
      "mail": "taro@akerun.com",
      "image_url": "https://akerun.com/user_example2.jpg",
      "authority": "manager",
      "code": "1001",
      "nfcs": [
        {
          "id": "NA101010",
          "name": "Photosynth太郎のNFC"
        }
      ]
    }
  ]
}

組織に属するユーザーの一覧を取得します。

ユーザー一覧は組織に属した順で返ります。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/users

必要なスコープ

organization:user:read

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
limitInteger取得件数(1から1,000の数字)100
id_afterStringデータ取得の開始位置
id_beforeStringデータ取得の終了位置
user_codeString組織におけるユーザーのコードで絞り込み(完全一致)

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
usersArray[User Object]ユーザーオブジェクトの配列
users >
id
StringユーザーのID
users >
name
Stringユーザーの名前
users >
mail
String/NULLユーザーのメールアドレス
users >
image_url
String/NULLユーザー画像
users >
authority
Stringユーザーの組織における権限レベル
users >
code
String/NULLユーザーの組織におけるコード
users >
nfcs
Array[NFC Object]/NULLNFCオブジェクトの配列
users >
nfcs >
id
StringNFCのID
users >
nfcs >
name
StringNFCの名前

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
user_not_found404id_after、id_beforeで指定したユーザーが組織に存在しない

ユーザー詳細

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/users/U-12345-67890" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Example Response

{
  "user": {
    "id": "U-12345-67890",
    "name": "Photosynth太郎",
    "mail": "taro@akerun.com",
    "image_url": "https://akerun.com/user_example1.jpg",
    "authority": "manager",
    "code": "1001",
    "nfcs": [
      {
        "id": "NA101010",
        "name": "Photosynth太郎のNFC"
      }
    ]
  }
}

組織に属するユーザーの詳細を取得します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/users/{USER_ID}

必要なスコープ

organization:user:read

パラメータ

(* 必須)

ParameterDescriptionDefault
organization_id*組織のID
user_id*ユーザーのID

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
userUser Objectユーザーオブジェクト
user >
id
StringユーザーのID
user >
name
Stringユーザーの名前
user >
mail
String/NULLユーザーのメールアドレス
user >
image_url
String/NULLユーザー画像
user >
authority
Stringユーザーの組織における権限レベル
user >
code
String/NULLユーザーの組織におけるコード
user >
nfcs
Array[NFC Object]/NULLNFCオブジェクトの配列
user >
nfcs >
id
StringNFCのID
user >
nfcs >
name
StringNFCの名前

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
user_not_found404user_idsで指定したユーザーが組織に存在しない

ユーザー追加

Example Request

curl -X POST "https://api.akerun.com/v3/organizations/O-12345-67890/users" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F user_name=Photosynth太郎 \
     -F user_mail=taro@akerun.com \
     -F user_image=@/path/to/image.jpg \
     -F user_authority=manager

Example Response

{
  "user": {
    "id": "U-12345-67890",
    "name": "Photosynth太郎",
    "mail": "taro@akerun.com",
    "image_url": "https://akerun.com/user_example1.jpg",
    "authority": "manager",
    "code": null,
    "nfcs": [
      {
        "id": "NA101010",
        "name": "Photosynth太郎のNFC"
      }
    ]
  }
}

組織にユーザーを追加します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

POST https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/users

必要なスコープ

organization:user:write

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
user_idString追加するユーザーのID
user_nameString追加するユーザーの名前
user_mailString追加するユーザーのメールアドレス
user_imageString追加するユーザーの画像
user_authorityString追加するユーザーの組織権限(manager,memberのどちらか)member

成功レスポンス

HTTP STATUS CODE: 201

PropertyTypeDescription
userUser Objectユーザーオブジェクト
user >
id
StringユーザーのID
user >
name
Stringユーザーの名前
user >
mail
String/NULLユーザーのメールアドレス
user >
image_url
String/NULLユーザーの画像
user >
authority
Stringユーザーの組織における権限
user >
code
String/NULLユーザーの組織におけるコード
user >
nfcs
Array[NFC Object]/NULLNFCオブジェクトの配列
user >
nfcs >
id
StringNFCのID
user >
nfcs >
name
StringNFCの名前

エラーレスポンス

CodeHTTP Status CodeDescription
invalid_params400リクエストパラメータが不正
unauthorized401アクセストークン不正
not_allowed403許可されていない行為
insufficient_scope403指定されたOAuthスコープを持っていない
not_in_organization403組織に属していない
insufficient_authority403トークンオーナーがマネージャー、もしくはスーパーマネージャでない
organization_not_found404organization_idで指定した組織が存在しない
user_not_found404user_idsで指定したユーザーが組織に存在しない

ユーザー更新

Example Request

curl -X PUT "https://api.akerun.com/v3/organizations/O-12345-67890/users/U-12345-67890" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F user_name=Photosynth太郎 \
     -F user_mail=taro@akerun.com \
     -F user_image=@/path/to/image.jpg \
     -F user_authority=manager

Example Response

{
  "user": {
    "id": "U-12345-67890",
    "name": "Photosynth太郎",
    "mail": "taro@akerun.com",
    "image_url": "https://akerun.com/user_example1.jpg",
    "authority": "manager",
    "code": null,
    "nfcs": [
      {
        "id": "NA101010",
        "name": "Photosynth太郎のNFC"
      }
    ]
  }
}

組織のユーザーの情報を更新します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

PUT https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/users/{USER_ID}

必要なスコープ

organization:user:write

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
user_id*String更新するユーザーのID
user_nameString更新するユーザーの名前
user_mailString更新するユーザーのメールアドレス
user_imageString更新するユーザーの画像
user_authorityString更新するユーザーの組織権限(manager,memberのどちらか)

成功レスポンス

HTTP STATUS CODE: 201

PropertyTypeDescription
userUser Objectユーザーオブジェクト
user >
id
StringユーザーのID
user >
name
Stringユーザーの名前
user >
mail
String/NULLユーザーのメールアドレス
user >
image_url
String/NULLユーザーの画像
user >
authority
Stringユーザーの組織における権限
user >
code
String/NULLユーザーの組織におけるコード
user >
nfcs
Array[NFC Object]/NULLNFCオブジェクトの配列
user >
nfcs >
id
StringNFCのID
user >
nfcs >
name
StringNFCの名前

エラーレスポンス

CodeHTTP Status CodeDescription
invalid_params400リクエストパラメータが不正
unauthorized401アクセストークン不正
not_allowed403許可されていない行為
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない、スーパーマネージャー以外のユーザーが権限更新を行なっている、またはマネージャー同しがユーザーの更新を行なっている
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
user_not_found404user_idsで指定したユーザーが組織に存在しない

ユーザー削除

Example Request

curl -X DELETE "https://api.akerun.com/v3/organizations/O-12345-67890/users/U-12345-67890" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

組織に属しているユーザーを脱退させます。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

DELETE https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/users/{USER_ID}

必要なスコープ

organization:user:write

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
user_id*String削除するユーザーのID

成功レスポンス

HTTP STATUS CODE: 204

無し

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
not_allowed403許可されていない行為
insufficient_scope403指定されたOAuthスコープを持っていない
not_in_organization403組織に属していない
insufficient_authority403トークンオーナーがマネージャー、もしくはスーパーマネージャでない
organization_not_found404organization_idで指定した組織が存在しない
user_not_found404user_idsで指定したユーザーが組織に存在しない

鍵一覧

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/keys" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F akerun_id=A1030001 \
     -F limit=100 \
     -F id_after=K-12345-67890 \
     -F id_before=K-67890-12345

Example Response

{
  "keys": [
    {
      "id": "K-47891-98710-12390",
      "role": "guest",
      "schedule_type": "recurring",
      "temporary_schedule": null,
      "recurring_schedule": {
        "days_of_week": [0, 1, 2, 3, 4, 5, 6],
        "start_time": "06:37+09:00",
        "end_time": "16:37+09:00"
      },
      "key_url": {
        "url": "https://manager.akerun.com/.....",
        "password_protected": true
      },
      "akerun": {
        "id": "A1030001",
        "name": "執務室表口"
      },
      "user": {
        "id": "U-12345-67890",
        "name": "アケルン太郎"
      }
    },
    {
      "id": "K-12562-69142",
      "role": "guest",
      "schedule_type": "temporary",
      "temporary_schedule": {
        "start_datetime": "2017-09-20T09:30+09:00",
        "end_datetime": "2017-09-22T18:00+09:00"
      },
      "recurring_schedule": null,
      "key_url": {
        "url": "https://manager.akerun.com/.....",
        "password_protected": true
      },
      "akerun": {
        "id": "A1030001",
        "name": "執務室表口"
      },
      "user": {
        "id": "U-67890-12345",
        "name": "Photosynth太郎"
      }
    }
  ]
}

組織に属する鍵の一覧を取得します。

鍵一覧は発行した順で返ります。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/keys

必要なスコープ

organization:key:read

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
user_idString絞り込みたいユーザーのID
akerun_idString絞り込みたいAkerunのID
limitString取得件数(1から1,000の数字)100
id_afterStringデータ取得の開始位置
id_beforeStringデータ取得の終了位置

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
keysArray[Key Object]鍵オブジェクトの配列
keys >
id
String鍵のID
keys >
role
StringユーザーのAkerunに対しての権限(guest,admin,ownerのいずれか)
keys >
schedule_type
String鍵の日時設定タイプ(always,temporary,recurringのいずれか)
keys >
temporary_schedule
Object/NULL一時利用鍵詳細オブジェクト
keys >
temporary_schedule >
start_datetime
String一時利用鍵の開始日時(ISO 8601形式)
keys >
temporary_schedule >
end_datetime
String一時利用鍵の終了日時(ISO 8601形式)
keys >
recurring_schedule
Object/NULL繰り返し鍵詳細オブジェクト
keys >
recurring_schedule >
days_of_week
Array[Integer]繰り返し鍵の曜日
(0=日曜日..6=土曜日)
keys >
recurring_schedule >
start_time
String繰り返し鍵の開始時刻(時刻とタイムゾーン ex: 12:30+09:00)
keys >
recurring_schedule >
end_time
String繰り返し鍵の終了時刻(時刻とタイムゾーン ex: 12:30+09:00)
keys >
key_url
Object/NULLURL鍵詳細オブジェクト
keys >
key_url >
url
StringURL鍵のURL
keys >
key_url >
password_protected
BooleanURL鍵にパスワードが設定されているか
keys >
akerun
Akerun Objectユーザーの名前
keys >
akerun >
id
StringAkerunのID
keys >
akerun >
name
StringAkerunの名前
keys >
user
User Objectユーザーオブジェクト
keys >
user >
id
StringユーザーのID
keys >
user >
name
Stringユーザーの名前

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
akerun_not_found404akerun_idで指定したAkerunが組織に存在しない
user_not_found404user_idsで指定したユーザーが組織に存在しない
key_not_found404id_after,id_beforeで指定した鍵が存在しない

鍵詳細

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/keys/K-12345-67890-12390" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Example Response

{
  "key": {
    "id": "K-12345-67890-12390",
    "role": "admin",
    "schedule_type": "recurring",
    "temporary_schedule": null,
    "recurring_schedule": {
      "days_of_week": [0, 1, 2, 3, 4, 5, 6],
      "start_time": "06:37+09:00",
      "end_time": "16:37+09:00"
    },
    "key_url": {
      "url": "https://manager.akerun.com/.....",
      "password_protected": true
    },
    "akerun": {
      "id": "A1030001",
      "name": "執務室表口"
    },
    "user": {
      "id": "A1030001",
      "name": "アケルン太郎"
    }
  }
}

組織・ユーザー・Akerunの鍵の一覧を取得します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/keys/{KEY_ID}

必要なスコープ

organization:key:read

パラメータ

(* 必須)

ParameterDescriptionDefault
organization_id*組織のID
key_id鍵のID

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
keyKey Object鍵オブジェクトの配列
key >
id
String鍵のID
key >
role
StringユーザーのAkerunに対しての権限(guest,admin,ownerのいずれか)
key >
schedule_type
String鍵の日時設定タイプ(always,temporary,recurringのいずれか)
key >
temporary_schedule
Object/NULL一時利用鍵詳細オブジェクト
key >
temporary_schedule >
start_datetime
String一時利用鍵の開始日時(ISO 8601形式)
key >
temporary_schedule >
end_datetime
String一時利用鍵の終了日時(ISO 8601形式)
key >
recurring_schedule
Object/NULL繰り返し鍵詳細オブジェクト
key >
recurring_schedule >
days_of_week
Array[Integer]繰り返し鍵の曜日
(0=日曜日..6=土曜日)
key >
recurring_schedule >
start_time
String繰り返し鍵の開始時刻(時刻とタイムゾーン ex: 12:30+09:00)
key >
recurring_schedule >
end_time
String繰り返し鍵の終了時刻(時刻とタイムゾーン ex: 12:30+09:00)
key >
key_url
Object/NULLURL鍵詳細オブジェクト
key >
key_url >
url
StringURL鍵のURL
key >
key_url >
password_protected
BooleanURL鍵にパスワードが設定されているか
key >
akerun
Akerun Objectユーザーの名前
key >
akerun >
id
StringAkerunのID
key >
akerun >
name
StringAkerunの名前
key >
user
User Objectユーザーオブジェクト
key >
user >
id
StringユーザーのID
key >
user >
name
Stringユーザーの名前

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
key_not_found404key_idで指定した鍵が存在しない

鍵作成

Temporary Schedule Example Request

curl -X POST "https://api.akerun.com/v3/organizations/O-12345-67890/keys" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F user_id=U-12345-67890 \
     -F akerun_id=A1030001 \
     -F schedule_type=temporary \
     -F temporary_schedule[start_datetime]=2017-09-13T12:30+09:00 \
     -F temporary_schedule[end_datetime]=2017-09-20T12:30+09:00 \
     -F role=guest

Temporary Schedule Example Response

{
  "key": {
    "id": "K-12345-67890-12390",
    "role": "guest",
    "schedule_type": "temporary",
    "temporary_schedule": {
      "start_datetime": "2017-09-13T12:30+09:00",
      "end_datetime": "2017-09-20T12:30+09:00"
    },
    "recurring_schedule": null,
    "key_url": null,
    "akerun": {
      "id": "A1030001",
      "name": "執務室表口"
    },
    "user": {
      "id": "A1030001",
      "name": "アケルン太郎"
    }
  }
}

Recurring Schedule Example Request

curl -X POST "https://api.akerun.com/v3/organizations/O-12345-67890/keys" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F user_id=U-12345-67890 \
     -F akerun_id=A1030001 \
     -F schedule_type=recurring \
     -F recurring_schedule[start_time]=10:00+09:00 \
     -F recurring_schedule[end_time]=19:00+09:00 \
     -F recurring_schedule[days_of_week][]=1 \
     -F recurring_schedule[days_of_week][]=2 \
     -F recurring_schedule[days_of_week][]=3 \
     -F recurring_schedule[days_of_week][]=4 \
     -F recurring_schedule[days_of_week][]=5 \
     -F role=guest

Recurring Schedule Example Response

{
  "key": {
    "id": "K-12345-67890",
    "role": "guest",
    "schedule_type": "recurring",
    "temporary_schedule": null,
    "recurring_schedule": {
      "days_of_week": [1,2,3,4,5],
      "start_time": "10:00+09:00",
      "end_time": "19:00+09:00"
    },
    "key_url": null,
    "akerun": {
      "id": "A1030001",
      "name": "執務室表口"
    },
    "user": {
      "id": "A1030001",
      "name": "アケルン太郎"
    }
  }
}

Always Schedule Example Request

curl -X POST "https://api.akerun.com/v3/organizations/O-12345-67890/keys" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F user_id=U-12345-67890 \
     -F akerun_id=A1030001 \
     -F schedule_type=always \
     -F role=guest

Always Schedule Example Response

{
  "keys": {
    "id": "K-12345-67890",
    "role": "guest",
    "schedule_type": "always",
    "temporary_schedule": null,
    "recurring_schedule": null,
    "key_url": {
      "url": "https://manager.akerun.com/.....",
      "password_protected": true
    },
    "akerun": {
      "id": "A1030001",
      "name": "執務室表口"
    },
    "user": {
      "id": "A1030001",
      "name": "アケルン太郎"
    }
  }
}

組織のユーザーの鍵を作成します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

POST https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/keys

必要なスコープ

organization:key:write

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
user_id*StringユーザーのID
akerun_id*StringAkerunのID
schedule_typeString鍵の日時設定タイプ
(always,temporary,recurringのいずれか)
always
temporary_schedule >
start_datetime
String一時利用鍵の開始日時
ISO 8601形式)
temporary_schedule >
end_datetime
String一時利用鍵の終了日時
ISO 8601形式)
recurring_schedule >
start_time
String繰り返し鍵の開始時刻
(時刻とタイムゾーン ex: 12:30+09:00)
recurring_schedule >
end_time
String繰り返し鍵の終了時刻
(時刻とタイムゾーン ex: 14:30+09:00)
recurring_schedule >
days_of_week
Array[Integer]繰り返し鍵の曜日
(0=日曜日..6=土曜日)
enable_key_urlStringURL鍵の有効無効
key_url_passwordStringURL鍵のパスワード
(4桁の数字)
roleStringユーザーのAkerunに対しての権限(guest,admin)guest

成功レスポンス

HTTP STATUS CODE: 201

PropertyTypeDescription
keyKey Object鍵オブジェクト
key >
id
String鍵のID
key >
role
StringユーザーのAkerunに対しての権限(guest,admin)
key >
schedule_type
String鍵の日時設定タイプ(always,temporary,recurringのいずれか)
key >
temporary_schedule
Object/NULL一時利用鍵詳細オブジェクト
key >
temporary_schedule >
start_datetime
String一時利用鍵の開始日時(ISO 8601形式)
key >
temporary_schedule >
end_datetime
String一時利用鍵の終了日時(ISO 8601形式)
key >
recurring_schedule
Object/NULL繰り返し鍵詳細オブジェクト
key >
recurring_schedule >
days_of_week
Array[Integer]繰り返し鍵の曜日
(0=日曜日..6=土曜日)
key >
recurring_schedule >
start_time
String繰り返し鍵の開始時刻(時刻とタイムゾーン ex: 12:30+09:00)
key >
recurring_schedule >
end_time
String繰り返し鍵の終了時刻(時刻とタイムゾーン ex: 12:30+09:00)
key >
key_url
Object/NULLURL鍵詳細オブジェクト
key >
key_url >
url
StringURL鍵のURL
key >
key_url >
password_protected
BooleanURL鍵にパスワードが設定されているか
key >
akerun
Akerun Objectユーザーの名前
key >
akerun >
id
StringAkerunのID
key >
akerun >
name
StringAkerunの名前
key >
user
User Objectユーザーオブジェクト
key >
user >
id
StringユーザーのID
key >
user >
name
Stringユーザーの名前

エラーレスポンス

CodeHTTP Status CodeDescription
invalid_params400リクエストパラメータが不正
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
akerun_not_found404akerun_idで指定したAkerunが組織に存在しない
user_not_found404user_idsで指定したユーザーが組織に存在しない

鍵更新

Temporary Schedule Example Request

curl -X PUT "https://api.akerun.com/v3/organizations/O-12345-67890/keys/K-12345-67890-09876" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F schedule_type=temporary \
     -F temporary_schedule[start_datetime]=2017-09-13T12:30+09:00 \
     -F temporary_schedule[end_datetime]=2017-09-20T12:30+09:00 \
     -F role=guest

Temporary Schedule Example Response

{
  "key": {
    "id": "K-12345-67890",
    "role": "guest",
    "schedule_type": "temporary",
    "temporary_schedule": {
      "start_datetime": "2017-09-13T12:30+09:00",
      "end_datetime": "2017-09-20T12:30+09:00"
    },
    "recurring_schedule": null,
    "key_url": null,
    "akerun": {
      "id": "A1030001",
      "name": "執務室表口"
    },
    "user": {
      "id": "A1030001",
      "name": "アケルン太郎"
    }
  }
}

Recurring Schedule Example Request

curl -X PUT "https://api.akerun.com/v3/organizations/O-12345-67890/keys/K-12345-67890-12390" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F schedule_type=recurring \
     -F recurring_schedule[start_time]=10:00+09:00 \
     -F recurring_schedule[end_time]=19:00+09:00 \
     -F recurring_schedule[days_of_week][]=1 \
     -F recurring_schedule[days_of_week][]=2 \
     -F recurring_schedule[days_of_week][]=3 \
     -F recurring_schedule[days_of_week][]=4 \
     -F recurring_schedule[days_of_week][]=5 \
     -F role=guest

Recurring Schedule Example Response

{
  "key": {
    "id": "K-12345-67890-12390",
    "role": "guest",
    "schedule_type": "recurring",
    "temporary_schedule": null,
    "recurring_schedule": {
      "days_of_week": [1,2,3,4,5],
      "start_time": "10:00+09:00",
      "end_time": "19:00+09:00"
    },
    "key_url": null,
    "akerun": {
      "id": "A1030001",
      "name": "執務室表口"
    },
    "user": {
      "id": "A1030001",
      "name": "アケルン太郎"
    }
  }
}

Always Schedule Example Request

curl -X PUT "https://api.akerun.com/v3/organizations/O-12345-67890/keys/K-12345-67890-12390" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F schedule_type=always \
     -F role=admin

Always Schedule Example Response

{
  "key": {
    "id": "K-12345-67890",
    "role": "admin",
    "schedule_type": "always",
    "temporary_schedule": null,
    "recurring_schedule": null,
    "key_url": {
      "url": "https://manager.akerun.com/.....",
      "password_protected": true
    },
    "akerun": {
      "id": "A1030001",
      "name": "執務室表口"
    },
    "user": {
      "id": "A1030001",
      "name": "アケルン太郎"
    }
  }
}

組織のユーザーの鍵を更新します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

PUT https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/keys/{KEY_ID}

必要なスコープ

organization:key:write

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
key_id*String鍵のID
schedule_type*String鍵の日時設定タイプ
(always,temporary,recurringのいずれか)
temporary_schedule >
start_datetime
String一時利用鍵の開始日時
ISO 8601形式)
temporary_schedule >
end_datetime
String一時利用鍵の終了日時
ISO 8601形式)
recurring_schedule >
start_time
String繰り返し鍵の開始時刻
(時刻とタイムゾーン ex: 12:30+09:00)
recurring_schedule >
end_time
String繰り返し鍵の終了時刻
(時刻とタイムゾーン ex: 14:30+09:00)
recurring_schedule >
days_of_week
Array[Integer]繰り返し鍵の曜日
(0=日曜日..6=土曜日)
enable_key_urlStringURL鍵の有効無効
key_url_passwordStringURL鍵のパスワード
(4桁の数字)
roleStringユーザーのAkerunに対しての権限(guest,admin)

成功レスポンス

HTTP STATUS CODE: 201

PropertyTypeDescription
keyKey Object鍵オブジェクト
key >
id
String鍵のID
key >
role
StringユーザーのAkerunに対しての権限(guest,admin)
key >
schedule_type
String鍵の日時設定タイプ(always,temporary,recurringのいずれか)
key >
temporary_schedule
Object/NULL一時利用鍵詳細オブジェクト
key >
temporary_schedule >
start_datetime
String一時利用鍵の開始日時(ISO 8601形式)
key >
temporary_schedule >
end_datetime
String一時利用鍵の終了日時(ISO 8601形式)
key >
recurring_schedule
Object/NULL繰り返し鍵詳細オブジェクト
key >
recurring_schedule >
days_of_week
Array[Integer]繰り返し鍵の曜日
(0=日曜日..6=土曜日)
key >
recurring_schedule >
start_time
String繰り返し鍵の開始時刻(時刻とタイムゾーン ex: 12:30+09:00)
key >
recurring_schedule >
end_time
String繰り返し鍵の終了時刻(時刻とタイムゾーン ex: 12:30+09:00)
key >
key_url
Object/NULLURL鍵詳細オブジェクト
key >
key_url >
url
StringURL鍵のURL
key >
key_url >
password_protected
BooleanURL鍵にパスワードが設定されているか
key >
akerun
Akerun Objectユーザーの名前
key >
akerun >
id
StringAkerunのID
key >
akerun >
name
StringAkerunの名前
key >
user
User Objectユーザーオブジェクト
key >
user >
id
StringユーザーのID
key >
user >
name
Stringユーザーの名前

エラーレスポンス

CodeHTTP Status CodeDescription
invalid_params400リクエストパラメータが不正
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
key_not_found404key_idで指定した鍵が存在しない

鍵削除

Example Request

curl -X DELETE "https://api.akerun.com/v3/organizations/O-12345-67890/keys/K-12345-67890-12390" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

組織のユーザーの鍵を削除します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

DELETE https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/keys/{KEY_ID}

必要なスコープ

organization:key:write

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*StringString組織のID
key_id*StringString鍵のID

成功レスポンス

HTTP STATUS CODE: 204

無し

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
key_not_found404key_idで指定した鍵が存在しない
not_allowed404許可されていない行為

NFC

NFC登録

Example Request

curl -X POST "https://api.akerun.com/v3/organizations/O-93523-73916/users/U-05746-32443/nfcs" \
     -H "Authorization: Bearer 806ec77145e054387e5be7c9e21668fd19795d63b988622a5117edce523a74e6" \
     -F nfc_chip_id=04b2a4e2b64890 \
     -F nfc_name=アケルン太郎のNFC

Example Response

{
  "nfc": {
    "id": "NC00496",
    "name": "アケルン太郎のNFC"
  }
}

組織のユーザーにNFCを登録します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

POST https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/users/{USER_ID}/nfcs

必要なスコープ

organization:nfc:write

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
user_id*StringユーザーのID
nfc_chip_id*StringNFCの固有ID番号
nfc_nameStringNFCの名前(60文字以内)

成功レスポンス

HTTP STATUS CODE: 201

PropertyTypeDescription
nfcNFC ObjectNFCオブジェクト
nfc >
id
StringNFCのID
nfc >
name
StringNFCの名前

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
not_allowed403nfc_chip_idで指定したNFCが他のユーザーに使用されている、または紐付けようとしているユーザーが既にNFCを持っていた場合
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
user_not_found404user_idsで指定したユーザーが組織に存在しない
invalid_params400パラメータが不正

NFC削除

Example Request

curl -X DELETE "https://api.akerun.com/v3/organizations/O-93523-71934/users/U-05746-35423/nfcs/NC00496" \
     -H "Authorization: Bearer 806ec77145e054387e5be7c9e21668fd19795d63b988622a5117edce523a74e6"

組織のユーザーのNFCを削除します。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

DELETE https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/users/{USER_ID}/nfcs/{NFC_ID}

必要なスコープ

organization:nfc:write

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
user_id*StringユーザーのID
nfc_id*StringNFCのID

成功レスポンス

HTTP STATUS CODE: 204

無し

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
not_allowed403nfc_idで指定したNFCのオーナーでは無い
organization_not_found404organization_idで指定した組織が存在しない
nfc_not_found404nfc_idで指定したNFCが存在しない

履歴

履歴一覧

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/accesses" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F limit=100 \
     -F datetime_after=2017-07-23T10:00:00Z \
     -F datetime_before=2017-07-29T19:00:00Z \
     -F akerun_ids[]=A1030001 \
     -F akerun_ids[]=A1030002

Example Response

{
  "accesses": [
    {
      "id": 1234567890921123456789,
      "action": "unlock",
      "device_type": "akerun_app",
      "device_name": "iOS iPhone",
      "accessed_at": "2017-06-26T06:37:19Z",
      "akerun": {
        "id": "A1030001",
        "name": "執務室表口",
        "image_url": "https://akerun.com/akerun_example1.jpg"
      },
      "user": {
        "id": "U-12345-67890",
        "name": "Photosynth太郎",
        "image_url": "https://akerun.com/user_example1.jpg"
      }
    },
    {
      "id": 1234567890921123456790,
      "action": "unlock",
      "device_type": "akerun_app",
      "device_name": "iOS iPhone",
      "accessed_at": "2017-06-26T06:40:19Z",
      "akerun": {
        "id": "A1030002",
        "name": "執務室裏口",
        "image_url": "https://akerun.com/akerun_example2.jpg"
      },
      "user": {
        "id": "U-12345-67890",
        "name": "Photosynth太郎",
        "image_url": "https://akerun.com/user_example2.jpg"
      }
    }
  ]
}

開閉および入退室の履歴の一覧を取得します。

Akerun Proの履歴の一部は、一度Akerun Pro本体に保存された後、Akerun Remoteなどを経由してサーバーにアップロードされるため、実際の開閉から本APIで取得できるようになるまで時間差が生じます。

一度取得した履歴と履歴の間に新しい履歴が追加されることもあるため、履歴をもれなく取得する必要がある場合、datetimeではなく、サーバーへのアップロード順であるidでソートして履歴を取得してください。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/accesses

必要なスコープ

organization:access:read

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
akerun_idsStringAkerun IDの配列
user_idsStringユーザーIDの配列
limitStringレスポンスの最大件数(1から1,000の数字)100
datetime_afterString履歴を絞り込む時刻(ISO 8601形式)
datetime_beforeString履歴を絞り込む時刻(ISO 8601形式)
id_beforeString履歴を絞り込むID
id_afterString履歴を絞り込むID
sort_byStringソート基準(id,datetimeのどちらか)datetime
sort_orderStringソート順(asc,descのどちらか)
asc → 昇順
desc → 降順
desc

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
accessesArray[Access Object]履歴オブジェクトの配列
accesses >
id
Integer履歴のID
accesses >
action
String解錠、施錠、NFCをかざした
accesses >
device_type
String端末種別
accesses >
device_name
String端末名
accesses >
accessed_at
String開閉および入退室の時刻
accesses >
akerun
Akerun Object/NULLAkerunオブジェクト
accesses >
akerun >
id
StringAkerunのID
accesses >
akerun >
name
StringAkerunの名前
accesses >
akerun >
image_url
StringAkerunの画像
accesses >
user
User Object/NULLユーザーオブジェクト
accesses >
user >
id
StringユーザーのID
accesses >
user >
name
Stringユーザーの名前
accesses >
user >
image_url
Stringユーザー画像

エラーレスポンス

CodeHTTP Status CodeDescription
invalid_params400パラメータが不正
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
akerun_not_found404akerun_idで指定したAkerunが組織に存在しない
user_not_found404user_idsで指定したユーザーが組織に存在しない

遠隔操作

施錠リクエスト

Example Request

curl -X POST "https://api.akerun.com/v3/organizations/O-12345-67890/akeruns/A1030001/jobs/lock" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Example Response

{
  "job": {
    "id": 12345678909
  }
}

組織のAkerunで施錠を行います。 この操作はAkerun Remoteを経由して非同期で行われます。

処理の実行状況はレスポンスのjob > idを使い、施錠結果確認APIで確認することができます。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

POST https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/akeruns/{AKERUN_ID}/jobs/lock

必要なスコープ

organization:akerun:lock

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
akerun_id*StringAkerunのID

成功レスポンス

HTTP STATUS CODE: 201

PropertyTypeDescription
jobJob Objectジョブオブジェクト
job > idIntegerジョブのID

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
not_allowed403現在Akerunを操作できる鍵を持っていない
remote_not_paired403akerun_idで指定したAkerunがAkerun Remoteとペアリングされていない
duplicate_job403Akerun Remoteがまだ処理中の施錠ジョブが存在する
organization_not_found404organization_idで指定した組織が存在しない
akerun_not_found404akerun_idで指定したAkerunが組織に存在しない

施錠結果確認

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/jobs/lock/12345678909" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Queued Lock Job Example Response

{
  "job": {
    "id": 12345678909,
    "type": "lock",
    "status": "queued",
    "queued_at": "2017-06-26T06:37:19Z",
    "finished_at": nil,
    "result": nil
  }
}

Finished Lock Job Example Response

{
  "job": {
    "id": 12345678909,
    "type": "lock",
    "status": "finished",
    "queued_at": "2017-06-26T06:37:19Z",
    "finished_at": "2017-06-26T06:38:19Z",
    "result": "succeeded"
  }
}

施錠ジョブの処理状況を確認できます。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/jobs/lock/{JOB_ID}

必要なスコープ

organization:akerun:lock

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
job_id*IntegerジョブのID

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
jobJob Objectジョブオブジェクト
job > idIntegerジョブのID
job > typeStringジョブの種類
job > statusStringジョブの実行状況
job > queued_atStringジョブが作成された時刻
job > finished_atStringジョブが実行終了した時刻
job > resultStringジョブの結果

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
job_not_found404job_idで指定したジョブが存在しない

解錠リクエスト

Example Request

curl -X POST "https://api.akerun.com/v3/organizations/O-12345-67890/akeruns/A1030001/jobs/unlock" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Example Response

{
  "job": {
    "id": 12345678909
  }
}

組織のAkerunで解錠を行います。 この操作はAkerun Remoteを経由して非同期で行われます。

処理の実行状況はレスポンスのjob > idを使い、解錠結果確認APIで確認することができます。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

POST https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/akeruns/{AKERUN_ID}/jobs/unlock

必要なスコープ

organization:akerun:lock

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
akerun_id*StringAkerunのID

成功レスポンス

HTTP STATUS CODE: 201

PropertyTypeDescription
jobJob Objectジョブオブジェクト
job > idIntegerジョブのID

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
not_allowed403現在Akerunを操作できる鍵を持っていない
remote_not_paired403akerun_idで指定したAkerunがAkerun Remoteとペアリングされていない
duplicate_job403Akerun Remoteがまだ処理中の施錠ジョブが存在する
organization_not_found404organization_idで指定した組織が存在しない
akerun_not_found404akerun_idで指定したAkerunが組織に存在しない

解錠結果確認

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/jobs/unlock/12345678909" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Queued Unlock Job Example Response

{
  "job": {
    "id": 12345678909,
    "type": "unlock",
    "status": "queued",
    "queued_at": "2017-06-26T06:37:19Z",
    "finished_at": nil,
    "result": nil
  }
}

Finished Unlock Job Example Response

{
  "job": {
    "id": 12345678909,
    "type": "unlock",
    "status": "finished",
    "queued_at": "2017-06-26T06:37:19Z",
    "finished_at": "2017-06-26T06:38:19Z",
    "result": "succeeded"
  }
}

解錠ジョブの処理状況を確認できます。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/jobs/unlock/{JOB_ID}

必要なスコープ

organization:akerun:lock

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
job_id*IntegerジョブのID

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
jobJob Objectジョブオブジェクト
job > idIntegerジョブのID
job > typeStringジョブの種類
job > statusStringジョブの実行状況(queued,finished)
job > queued_atStringジョブが作成された時刻
job > finished_atStringジョブが実行終了した時刻
job > resultStringジョブの結果(succeeded,failed)

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
job_not_found404job_idで指定したジョブが存在しない

状態取得リクエスト

Example Request

curl -X POST "https://api.akerun.com/v3/organizations/O-12345-67890/akeruns/A1030001/jobs/state" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Example Response

{
  "job": {
    "id": 12345678909
  }
}

組織のAkerunの状態取得を行います。 この操作はAkerun Remoteを経由して非同期で行われます。

処理の実行状況はレスポンスのjob > idを使い、状態取得結果確認APIで確認することができます。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

POST https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/akeruns/{AKERUN_ID}/jobs/state

必要なスコープ

organization:akerun:state

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
akerun_id*StringAkerunのID

成功レスポンス

HTTP STATUS CODE: 201

PropertyTypeDescription
jobJob Objectジョブオブジェクト
job > idIntegerジョブのID

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
not_allowed403現在Akerunを操作できる鍵を持っていない
remote_not_paired403akerun_idで指定したAkerunがAkerun Remoteとペアリングされていない
duplicate_job403Akerun Remoteがまだ処理中の施錠ジョブが存在する
organization_not_found404organization_idで指定した組織が存在しない
akerun_not_found404akerun_idで指定したAkerunが組織に存在しない

状態取得結果確認

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/jobs/state/12345678909" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Queued State Job Example Response

{
  "job": {
    "id": 12345678909,
    "type": "state",
    "status": "queued",
    "queued_at": "2017-06-26T06:37:19Z",
    "finished_at": nil,
    "result": nil
  }
}

Finished State Job Example Response

{
  "job": {
    "id": 12345678909,
    "type": "state",
    "status": "finished",
    "queued_at": "2017-06-26T06:37:19Z",
    "finished_at": "2017-06-26T06:38:19Z",
    "result": "succeeded"
  }
}

状態取得ジョブの処理状況を確認できます。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/jobs/state/{JOB_ID}

必要なスコープ

organization:akerun:state

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
job_id*IntegerジョブのID

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
jobJob Objectジョブオブジェクト
job > idIntegerジョブのID
job > typeStringジョブの種類
job > statusStringジョブの実行状況(queued,finished)
job > queued_atStringジョブが作成された時刻
job > finished_atStringジョブが実行終了した時刻
job > resultStringジョブの結果(succeeded,failed)

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
job_not_found404job_idで指定したジョブが存在しない

設定変更リクエスト

Example Request

curl -X POST "https://api.akerun.com/v3/organizations/O-12345-67890/akeruns/A1030001/jobs/setting" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F autolock=true \
     -F autolock_off_schedule[start_time]=10:00+09:00 \
     -F autolock_off_schedule[end_time]=19:00+09:00 \
     -F autolock_off_schedule[days_of_week][]=0 \
     -F autolock_off_schedule[days_of_week][]=6 \
     -F open_door_alert=true \
     -F open_door_alert_second=30 \
     -F push_button=false \
     -F normal_sound_volume=0 \
     -F alert_sound_volume=100

Example Response

{
  "job": {
    "id": 12345678909
  }
}

組織のAkerunの設定変更を行います。 この操作はAkerun Remoteを経由して非同期で行われます。

処理の実行状況はレスポンスのjob > idを使い、設定変更結果確認APIで確認することができます。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

POST https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/akeruns/{AKERUN_ID}/jobs/setting

必要なスコープ

organization:akerun:setting

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
akerun_id*StringAkerunのID
autolockBooleanオートロック
autolock_off_schedule >
start_time
Stringオートロックオフ開始時刻(時刻とタイムゾーン ex: 12:30+09:00)
autolock_off_schedule >
end_time
Stringオートロックオフ終了時刻(時刻とタイムゾーン ex: 12:30+09:00)
autolock_off_schedule >
days_of_week
Array[Integer]オートロックオフ曜日(0=日曜日..6=土曜日)
open_door_alertBooleanドア開けっ放し警告(true=有効,false=無効)
open_door_alert_secondIntegerドア開けっ放し警告までの秒数(30,60,180のいずれか)
push_buttonBooleanプッシュボタンでの施錠・解錠(true=有効,false=無効)
normal_sound_volumeInteger操作音(1から100の数字)
alert_sound_volumeInteger警告音(1から100の数字)

成功レスポンス

HTTP STATUS CODE: 201

PropertyTypeDescription
jobJob Objectジョブオブジェクト
job > idIntegerジョブのID

エラーレスポンス

CodeHTTP Status CodeDescription
invalid_params400パラメータが不正
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
not_allowed403現在Akerunを操作できる鍵を持っていない
remote_not_paired403akerun_idで指定したAkerunがAkerun Remoteとペアリングされていない
organization_not_found404organization_idで指定した組織が存在しない
akerun_not_found404akerun_idで指定したAkerunが組織に存在しない

設定変更結果確認

Example Request

curl -X GET "https://api.akerun.com/v3/organizations/O-12345-67890/jobs/setting/12345678909" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252"

Queued Setting Job Example Response

{
  "job": {
    "id": 12345678909,
    "type": "setting",
    "status": "queued",
    "queued_at": "2017-06-26T06:37:19Z",
    "finished_at": nil,
    "result": nil
  }
}

Finished Setting Job Example Response

{
  "job": {
    "id": 12345678909,
    "type": "setting",
    "status": "finished",
    "queued_at": "2017-06-26T06:37:19Z",
    "finished_at": "2017-06-26T06:38:19Z",
    "result": "succeeded"
  }
}

設定変更ジョブの処理状況を確認できます。

HTTP リクエストヘッダ

Authorization: Bearer {ACCESS_TOKEN}

HTTP リクエスト

GET https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/jobs/setting/{JOB_ID}

必要なスコープ

organization:akerun:setting

パラメータ

(* 必須)

ParameterTypeDescriptionDefault
organization_id*String組織のID
job_id*IntegerジョブのID

成功レスポンス

HTTP STATUS CODE: 200

PropertyTypeDescription
jobJob Objectジョブオブジェクト
job > idIntegerジョブのID
job > typeStringジョブの種類
job > statusStringジョブの実行状況(queued,finished)
job > queued_atStringジョブが作成された時刻
job > finished_atStringジョブが実行終了した時刻
job > resultStringジョブの結果(succeeded,failed)

エラーレスポンス

CodeHTTP Status CodeDescription
unauthorized401アクセストークン不正
insufficient_scope403指定されたOAuthスコープを持っていない
insufficient_authority403マネージャー以上でない
not_in_organization403組織に属していない
organization_not_found404organization_idで指定した組織が存在しない
job_not_found404job_idで指定したジョブが存在しない

ページネーション

Pagination Example Request

curl -X GET "https://api.akerun.com/v3/organizations" \
     -H "Authorization: Bearer c226b89bce98ebb8f6626be1bda25fb80ac56de6a1f7b3526cbad59e0e4af252" \
     -F id_after=O-00000-00001 \
     -F id_before=O-00000-00005 \
     -F limit=2

Pagination Example Response

{
  "organizations": [
    {
      "id": "O-00000-00002"
    },
    {
      "id": "O-00000-00003"
    }
  ]
}

一覧取得系のAPIではデータの取得範囲を指定することができます。 本APIでは id_afterid_beforelimit のパラメーターを使ったカーソルベースの ページネーションを使用しています。

id_after のパラメーターを指定した場合、id_after で指定された 後のデータを返します。 id_before のパラメーターを指定した場合、id_before で指定された 前のデータを返します。

id_afterid_before 両方のパラメーターを指定した場合、 両方のパラメーターの条件を満たしたデータを返します。

利用可能なパラメータ

ParameterDescriptionDefault
id_afterid_after より1つ後のデータが開始位置になりますなし
id_beforeid_before より1つ前のデータが終了位置になりますなし
limit取得件数(1から1,000の数字)APIごとに設定されています

エラーレスポンス

V3 Example Response

{
  "code": "akerun_not_found",
  "message": "Akerun not found."
}

Authentication Example Response

{
  "error": "invalid_client",
  "error_description": "Authentication failed."
}

API リクエストでエラーが発生した場合、その原因を含むエラーレスポンスをJSONデータで返します。 code はエラーの種別を示し、message は原因の説明を示します。

OAuth認証のAPI リクエストでエラーが発生した場合、その原因を含むエラーレスポンスをJSONデータで返します。 error はエラーの種別を示し、error_description は原因の説明を示します。

リクエスト制限

本APIにはリクエスト制限が設けられています。 制限を超えたリクエストが行われた場合は、エラーが返却されます。

リクエスト制限値は、50リクエスト/分 です。 これを超える利用を行いたい場合は、 support@photosynth.co.jp までお問い合わせください。