API 共通ガイドの概要
API の種類
LINE WORKS Bot Platform API は、サービス API とサーバー API の2つの種類に分かれています。詳細については、各 API の明細にて記述しています。なお、種類が明記されていない場合は、サービス API を示します。
サービス API
ユーザーのログインが必要なAPIです。本人のデータへのみアクセスできます。ただし、カレンダーの「他人のスケジュールリスト閲覧」 API のように、ドメイン内に限って他ユーザーのデータにアクセスが可能な API も一部あります。
サーバー API
ユーザーのログインが不要な APIです。ドメイン内のすべてのユーザーデータにアクセスできます。代表的な API として組織連携と移行(migration)API があります。
API 認証
サービス API とサーバー API は、ともに OAuth 2.0 をベースとしますが、認証の方法は異なります。
サービス API の認証
サービス API の認証方法は、下記の通りです。
図 1 サービス API の認証
- サービス API の使用に必要な情報を発行します。 ユーザーは、LINE WORKS Developer Consoleよりサービス API の使用に必要な情報を発行します。詳細については、API 認証の準備を参照してください。
- サービス API を使用する際の必要な情報を提供します。
- Authorization code の発行をリクエストします (window open)。 新規ウィンドウにて Authorization code の発行をリクエストします。このとき、LINE WORKS Developer Consoleで発行したサービスAPIコンシューマーキーを使います。
- LINE WORKS ログインウィンドウを表示します。 LINE WORKS にログインしていない場合は、ログインウィンドウを表示します。すでにログイン済みの場合は、このプロセスをスキップします。
- ID/Password を入力します。 LINE WORKS ログインウィンドウにて ID/Password を入力してログインします。
- 認証を確認後に Authorization code を発行します。 ID/Password を検証後に、Authorization code を発行して3 回リクエストした場合に渡された redirect_uri パラメータへ渡します。
- Access Token をリクエストします(API call)。 Authorization code を利用して Access Token をリクエストします。Authorization code は、一回性のコードです。
- Access Token を発行します。 Authorization code を検証後に Access Token を発行します。
- 必要な情報を Header に追加して API を呼び出します。 サービス API を呼び出す際にコンシューマーキーと Access Token を Header に追加して呼び出します。
- Header 情報の有効性を確認し、API を処理します。 LINE WORKS は、Header 情報の有効性を確認して API を実際に処理します。
- API の処理結果を返します。
参考
- APIを呼び出すたびに Access Token を発行する必要はありません (3~8 番プロセス)。
- 一度発行した Access Token は、別途保管しておき再利用することができます(例: クッキー)。
サーバー API の認証
サーバー API の認証方法は、下記の通りです。
図 2 サーバー API の認証
- サーバー API の使用に必要な情報を発行します。 ユーザーは、LINE WORKS Developer Consoleよりサーバー API の使用に必要な情報を発行します。詳細については、API 認証の準備にて説明します。
- サービス API を使用する際に必要な情報を提供します。
- 必要な情報を Header に追加して API を呼び出します。 サーバー API を呼び出す際にコンシューマーキーと Server Token を Header に追加して呼び出します。
- Header 情報の有効性を確認してリクエスト IP を確認して API を処理します。 LINE WORKS は、Header 情報の有効性を確認した後、Token 発行時にDeveloper Consoleで登録したサーバー IP と実際のリクエストクライアント IP が一致するかどうかを確認のうえAPIを処理します。
- API の処理結果を返します。