splats logo

OAuth 2.0の連携方式でアクセストークンを発行する

サービス事前登録

OAuth 2.0の連携方式でアクセストークンの発行をご希望の方は事前登録が必要になります。
以下の情報をそえてお申し込みください。

  • 連携システム名 (必須)

    • 認可画面に表示されるサービス名です。

  • リダイレクトURI (必須)

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

  • 利用する機能(スコープ) (必須)

    • SPLATS APIで利用する機能について、項目ごとに「参照」「更新」の権限を設定します。
      利用する機能から、必要なスコープのリストをお送りください。
      各エンドポイントごとで必要な権限はSPLATS API仕様書をご確認ください。

  • その他情報

    • 連携サービス元情報(企業名、担当者名、連絡先)

    • 使用目的

    • 使用頻度(ピーク時の秒間あたりのリクエスト回数)

事前登録完了後、client_idclient_secret を発行いたします。
連携システム名、リダイレクトURI、スコープは後から変更可能です。

client_idclient_secret は他のユーザーに知られることがないよう管理してください。

アクセストークン発行

OAuth 2.0の仕様に準拠しており、Authorization Code Grant を元にアクセストークンの発行を行います。
JSアプリやネイティブアプリなどのような Public Clientからのアクセストークン発行は許可していません。

アクセストークン発行フロー

diagramname
  1. 認可コードの取得

    1. 連携サービスはSPLATSとの連携を行うことの認可をユーザーから得るため、認可エンドポイントへリダイレクトさせます。

    2. ユーザーは連携サービスがSPLATSにアクセスする権限を与えることについて同意し、認可画面でSPLATS メンバーサイトの管理者アカウントで認証します。

    3. ユーザーによる許可が得られた場合、事前に登録されたリダイレクトURIにリダイレクトさせ、認可コードとstateを連携サービスに渡します。

    4. 連携サービスは認可エンドポイントへリクエストした時に送信したstateと渡されたstateが同一かどうか確認します。(任意)

  2. アクセストークンの作成

    1. 連携サービスは認可コードを使用して、トークンエンドポイントへリクエストを送信します。

    2. トークンエンドポイントは連携サービスを認証し、アクセストークンを返却します。

    3. 連携サービスはアクセストークンを後で利用するため安全に保存します。

  3. SPLATS APIの使用

    1. 連携サービスはアクセストークンを使用してSPLATS APIのエンドポイントへリクエストを送信します。

    2. SPLATS APIはアクセストークンが有効な場合、正常なレスポンスを返却します。アクセストークンが無効な場合はエラーレスポンスを返却します。

    3. 連携サービスは取得したレスポンスをもとに処理を継続します。

エンドポイント

  • https://api-link.share.splats.jp/

    • 弊社から提供した連携用の開発環境に接続するエンドポイントです。
      初回の事前登録で発行する client_idclient_secret はこちらのエンドポイントで使用するものとなります。

  • https://api-link.splats.jp/

    • 本番環境に接続するエンドポイントです。
      本番環境に接続するためには、本番環境用の client_idclient_secret を発行する必要があります。
      本番環境移行時に発行いたしますのでご連絡ください。

認可コードの取得

申し込み時に指定した redirect_uri と、弊社から送付された client_id を使い認可エンドポイントにアクセスし、表示される入力フォームにて、SPLATS メンバーサイトの管理者アカウントで認証してください。
認証後に redirect_uri に付与されるクエリパラメーターの code はアクセストークンの取得時に必要となります。
認可コードの有効期限は発行から10分です。有効期限が過ぎた場合、再度発行してください。

認可エンドポイントリクエスト例
GET
https://api-link.share.splats.jp/oauth2/authorize
?response_type=code
&client_id={CLIENT_ID}
&redirect_uri={REDIRECT_URI}
&state={STATE}
パラメーター (* 必須)
パラメーター タイプ 説明

response_type*

string

code を指定

client_id*

string

弊社より提供したクライアントID

redirect_uri*

string

認可後にリダイレクトするURL
サービス登録時に申請したリダイレクトURIと完全一致すること

state

string

認可リクエストのレスポンスに指定されたstateパラメーターを含める
(参考)RFC 6749 4.1.1. Authorization Request

成功レスポンス例
HTTP/1.1 302 Found
Location: {REDIRECT_URI}?code=AUTHORIZATION_CODE&state={STATE}

認可コードとステートを伴ってリダイレクトしアプリに戻ります。
認可コードは10分間有効です。

エラーレスポンス
エラーコード 説明

invalid_request

リクエストに必須パラメーターが含まれていない、サポート外のパラメーターが付与されている、同一のパラメーターが複数含まれる場合、その他不正な形式であった場合もこれに含まれる。

unsupported_response_type

response_type=code 以外を指定した。

server_error

リクエストの処理ができないような予期しない状況に遭遇した。

認可画面(サンプル)

authorization screen

アクセストークンの作成

例を参考にアクセストークンの作成を行ってください。

トークンエンドポイントリクエスト例
POST https://api-link.share.splats.jp/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
client_id={CLIENT_ID}
client_secret={CLIENT_SECRET}
code={AUTHORIZATION_CODE}
redirect_uri={REDIRECT_URI}
パラメーター (* 必須)
パラメーター タイプ 説明

grant_type*

string

authorization_code を指定

client_id*

string

弊社より提供したクライアントID

client_secret*

string

弊社より提供したクライアントシークレット

code*

string

連携サービスへのリダイレクトリクエストに含まれる認可コード

redirect_uri*

string

認可後にリダイレクトするURL
サービス登録時に申請したリダイレクトURIと完全一致すること

成功レスポンス例
{
  "token_type": "Bearer",
  "access_token": "{アクセストークン}"
}
成功レスポンス
パラメーター タイプ 説明

token_type

string

アクセストークンの種類

access_token

string

アクセストークン

HTTP STATUS CODE: 200

エラーレスポンス
エラーコード 説明

invalid_client

client_idまたはclient_secret に指定したクライアントID、シークレットが誤っている

invalid_request

client_idまたはclient_secret が指定されていない

invalid_grant

codeに指定した認可コードが誤っているか有効期限(10分間)外である

unsupported_grant_type

grant_typeauthorization_code が指定されていない

アクセストークン再発行

スコープが変更された場合やアクセストークンの再発行が必要な場合は例を参考にリクエストしてください。

アクセストークン再発行リクエスト例
POST https://api-link.share.splats.jp/oauth2/update
Content-Type: application/x-www-form-urlencoded
AUTHORIZATIONS: Bearer {アクセストークン}

client_id={CLIENT_ID}
client_secret={CLIENT_SECRET}
token={アクセストークン}
パラメーター (* 必須)
パラメーター タイプ 説明

client_id*

string

弊社より提供したクライアントID

client_secret*

string

弊社より提供したクライアントシークレット

token*

string

再発行したいアクセストークン

成功レスポンス例
{
  "token_type": "Bearer",
  "access_token": "{アクセストークン}"
}
成功レスポンス
パラメーター タイプ 説明

token_type

string

アクセストークンの種類

access_token

string

アクセストークン

HTTP STATUS CODE: 200

エラーレスポンス
エラーコード 説明

invalid_client

client_idまたはclient_secret に指定したクライアントID、シークレットが誤っている

invalid_request

client_idまたはclient_secretまたはtoken が指定されていない

Not Found

指定したアクセストークンが存在しない

アクセストークン無効化

アクセストークンを無効化する場合は例を参考にリクエストしてください。
無効化したアクセストークンは再度利用することはできません。

アクセストークン無効化リクエスト例
POST https://api-link.share.splats.jp/oauth2/revoke
Content-Type: application/x-www-form-urlencoded
AUTHORIZATIONS: Bearer {アクセストークン}

client_id={CLIENT_ID}
client_secret={CLIENT_SECRET}
token={アクセストークン}
パラメーター (* 必須)
パラメーター タイプ 説明

client_id*

string

弊社より提供したクライアントID

client_secret*

string

弊社より提供したクライアントシークレット

token*

string

再発行したいアクセストークン

成功レスポンス

HTTP STATUS CODE: 200

エラーレスポンス
エラーコード 説明

invalid_client

client_idまたはclient_secret に指定したクライアントID、シークレットが誤っている

invalid_request

client_idまたはclient_secretまたはtoken が指定されていない

Not Found

指定したアクセストークンが存在しない

利用する機能

項目 操作 スコープ 説明

テナント

参照

tenant:read

テナント名、休日設定、webhook設定を取得できます。

更新

tenant:write

webhook設定の更新ができます。

メンバー

参照

members:read

メンバー情報を取得できます。

更新

members:write

メンバー情報を追加/変更/削除できます。

メンバーグループ

参照

membergroups:read

メンバーグループ情報を取得できます。

更新

membergroups:write

メンバーグループ情報を追加/変更/削除できます。

ゲスト

参照

guests:read

ゲスト情報を取得できます。

更新

guests:write

ゲスト情報を追加/変更/削除できます。

ログ

参照

histories:read

ログ情報を取得できます。

エリア

参照

areas:read

エリア情報を取得できます。

デバイス

参照

devices:read

デバイス情報、デバイス状態を取得できます。

カメラ

参照

cameras:read

ログ発生時の映像を取得できます。