OAuth 2.0の連携方式でアクセストークンを発行する
サービス事前登録
OAuth 2.0の連携方式でアクセストークンの発行をご希望の方は事前登録が必要になります。
以下の情報をそえてお申し込みください。
-
連携システム名 (必須)
-
認可画面に表示されるサービス名です。
-
-
リダイレクトURI (必須)
-
リダイレクトURIは、OAuth2.0のアクセストークンを発行するフローで必要となります。
詳しくは OAuth 2.0の仕様をご覧ください。
※複数登録可能です。
-
-
利用する機能(スコープ) (必須)
-
SPLATS APIで利用する機能について、項目ごとに「参照」「更新」の権限を設定します。
利用する機能から、必要なスコープのリストをお送りください。
各エンドポイントごとで必要な権限はSPLATS API仕様書をご確認ください。
-
-
その他情報
-
連携サービス元情報(企業名、担当者名、連絡先)
-
使用目的
-
使用頻度(ピーク時の秒間あたりのリクエスト回数)
-
事前登録完了後、client_id
と client_secret
を発行いたします。
連携システム名、リダイレクトURI、スコープは後から変更可能です。
client_id と client_secret は他のユーザーに知られることがないよう管理してください。
|
アクセストークン発行
OAuth 2.0の仕様に準拠しており、Authorization Code Grant を元にアクセストークンの発行を行います。
JSアプリやネイティブアプリなどのような Public Clientからのアクセストークン発行は許可していません。
アクセストークン発行フロー
-
認可コードの取得
-
連携サービスはSPLATSとの連携を行うことの認可をユーザーから得るため、認可エンドポイントへリダイレクトさせます。
-
ユーザーは連携サービスがSPLATSにアクセスする権限を与えることについて同意し、認可画面でSPLATS メンバーサイトの管理者アカウントで認証します。
-
ユーザーによる許可が得られた場合、事前に登録されたリダイレクトURIにリダイレクトさせ、認可コードとstateを連携サービスに渡します。
-
連携サービスは認可エンドポイントへリクエストした時に送信したstateと渡されたstateが同一かどうか確認します。(任意)
-
-
アクセストークンの作成
-
連携サービスは認可コードを使用して、トークンエンドポイントへリクエストを送信します。
-
トークンエンドポイントは連携サービスを認証し、アクセストークンを返却します。
-
連携サービスはアクセストークンを後で利用するため安全に保存します。
-
-
SPLATS APIの使用
-
連携サービスはアクセストークンを使用してSPLATS APIのエンドポイントへリクエストを送信します。
-
SPLATS APIはアクセストークンが有効な場合、正常なレスポンスを返却します。アクセストークンが無効な場合はエラーレスポンスを返却します。
-
連携サービスは取得したレスポンスをもとに処理を継続します。
-
エンドポイント
-
https://api-link.share.splats.jp/
-
弊社から提供した連携用の開発環境に接続するエンドポイントです。
初回の事前登録で発行するclient_id
とclient_secret
はこちらのエンドポイントで使用するものとなります。
-
-
https://api-link.splats.jp/
-
本番環境に接続するエンドポイントです。
本番環境に接続するためには、本番環境用のclient_id
とclient_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 |
state |
string |
認可リクエストのレスポンスに指定されたstateパラメーターを含める |
HTTP/1.1 302 Found Location: {REDIRECT_URI}?code=AUTHORIZATION_CODE&state={STATE}
認可コードとステートを伴ってリダイレクトしアプリに戻ります。
認可コードは10分間有効です。
エラーコード | 説明 |
---|---|
invalid_request |
リクエストに必須パラメーターが含まれていない、サポート外のパラメーターが付与されている、同一のパラメーターが複数含まれる場合、その他不正な形式であった場合もこれに含まれる。 |
unsupported_response_type |
|
server_error |
リクエストの処理ができないような予期しない状況に遭遇した。 |
認可画面(サンプル)
アクセストークンの作成
例を参考にアクセストークンの作成を行ってください。
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 |
{ "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_typeにauthorization_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 |
ログ発生時の映像を取得できます。 |