OAuth2 API リファレンス (1.0)

Download OpenAPI specification:Download

OAuth2は、アプリケーションがユーザに代わってクラウドBOTプラットフォームへのアクセスを取得できるようにするプロトコルです。

クラウドBOTは「The OAuth 2.0 Authorization Framework」RFCに沿った認可サーバAPIを部分的に提供します。
クラウドBOTのOAuth2認可機能を利用する場合、OAuth2の「認可コードフロー」を理解する必要があります。RFC「4.1. Authorization Code Grant」項を参照してください。

このドキュメントは、「認可コードフロー」で使用する認可サーバAPIの各種エンドポイントのリファレンスです。

認可リクエスト

get /oauth/authorize
https://console.c-bot.pro/oauth/authorize

あなたのアプリケーションが、ユーザに対してクラウドBOTアカウントへのアクセス認可をリクエストする時、このエンドポイントにページをリダイレクトすることによって、ユーザへの認可リクエスト画面が提供されます。

ユーザが認可リクエスト画面で認可または拒否をすると、redirect_uriパラメータのURLへリダイレクトされます。
この時、URLには以下のGETパラメータが付与されています。
code: 認可コード
state: ステート文字列
(error: ユーザが認可を拒否した場合のみ付与されます。)
https://yourdomain/callback?code={認可コード}&state={ステート文字列}

取得した認可コードを使って、アクセストークンの発行を行ってください。

query Parameters
client_id
required
integer

あなたのアプリケーションを示すIDです。
クラウドBOTダッシュボード > 開発者向けページ > Myアプリから発行してください。

redirect_uri
required
string

Myアプリで登録したreidrect_uriと同一のURL
ユーザが認可リクエスト画面で認可をした後に、このURLへリダイレクトされます。

response_type
required
string
Value: "code"

「code」固定(認可コードフローを要求する)

scope
required
string

認可を求める権限
以下の権限文字列をスペース(URL表記では+)区切りで指定
execute: 実行
refer: 参照
suspend: 中断

state
string

ステート文字列の利用を推奨します。
なぜステート文字列が必要かを正しく理解する必要があります。
RFC「4.1.1. Authorization Request」項を参照し、ステート文字列を正しくハンドリングしてください。

Responses

200

認可リクエスト画面

Response samples

Content type
text/html
No sample

アクセストークンの発行およびリフレッシュ

post /oauth/token
https://console.c-bot.pro/oauth/token

認可コードを使用してアクセストークンを発行します。
また、リフレッシュトークンを利用してアクセストークンのリフレッシュを行うこともできます。

発行されたアクセストークンは、認可したユーザがアクセスできるすべてのBOTに対して同様にアクセスすることができます。招待を受けた別契約のBOTも対象になります。

Request Body schema: application/x-www-form-urlencoded
grant_type
required
string
Enum: "authorization_code" "refresh_token"

authorization_code: アクセストークンの発行
refresh_token: アクセストークンのリフレッシュ

client_id
required
integer

あなたのアプリケーションを示すIDです。
クラウドBOTダッシュボード > 開発者向けページ > Myアプリから発行してください。

client_secret
required
string

Myアプリで発行されたシークレット

redirect_uri
string

Myアプリで登録したreidrect_uriと同一のURL
grant_typeがauthorization_codeの場合に必要

code
string

認可コード
grant_typeがauthorization_codeの場合に必要

refresh_token
string

リフレッシュトークン
grant_typeがrefresh_tokenの場合に必要

Responses

200

トークンを発行しました。

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "username": "user@example.com",
  • "token_type": "Bearer",
  • "expires_in": 31536000,
  • "access_token": "string",
  • "refresh_token": "string"
}