MakeでLINE WORKS APIを実行してみる (OAuth2.0)

サービス連携のノーコードツールである Make で LINE WORKS API を実行してみました。

# やりたいこと
![make_worksapi.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/3ece0476-caef-1e53-8f73-47b3d20a50a7.png)

MakeでLINE WORKSのメンバー情報を取得してみます。

使用するAPIはこちら
:robot: [ユーザーのプロフィール取得 - LINE WORKS API](https://developers.worksmobile.com/jp/docs/user-get-profile)

LINE WORKS APIの実行には「アクセストークン」が必要です。2つの方式がありますが、今回はUser Account認証を用いて取得します。

:book: [User Account認証](https://developers.worksmobile.com/jp/docs/auth-oauth)

このUser Account認証は OAuth2.0 に準拠しています。
また、MakeにはOAuth2.0に対応したHTTPモジュールが存在します。

:wrench: [Make ドキュメント](https://www.make.com/en/help/connections/how-to-connect-make-to-any-web-service-that-uses-oauth2-authorization)

今回はこのモジュールを用いてLINE WORKS APIのアクセストークン取得とメンバー情報の取得をやってみます。

# やってみた
## 1. OAuth2.0のための情報作成
まずLINE WORKSのDeveloper Consoleにアクセスし、トークン取得のために必要な情報を作成します。

[Developer Console - LINE WORKS](https://dev.worksmobile.com/jp/console/openapi/v2/app/list/view)

「API > ClientApp > アプリの新規追加」からアプリを作成します。


「アプリ名」と「アプリの説明」には任意のものを入力します。
「Redirect URL」には `https://www.integromat.com/oauth/cb/oauth2` を入れて追加します。
「OAuth Scopes」には　`user.profile.read` を指定します。

設定したら「保存」してアプリを作成します。

作成したアプリの情報のうち「Client ID」と「Client Secret」を利用してアクセストークンを発行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/80b789f5-1a76-33b1-1e00-ee3408faef43.png)

## 2. MakeでOAuth2.0を設定
Makeの画面を開き Senario を作成します。
今回は「HTTP」Moduleを使ってLINE WORKS APIを実行します。

「HTTP > Make an OAuth 2.0 request」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/01ef5d69-01b0-b032-a83a-4436f1bd4e3b.png)

設定の「Create a connection」からOAuth2.0のコネクションを追加します。


それぞれの入力項目に以下を入力します。

- **Authorize URI**: `https://auth.worksmobile.com/oauth2/v2.0/authorize`
- **Token URI**: `https://auth.worksmobile.com/oauth2/v2.0/token`
- **Scope**: `user.profile.read` を追加します。
- **Client ID**: Developer Consoleで作成したアプリのClient ID
- **Client Secret**: Developer Consoleで作成したアプリのClient Secret

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/9d3fbf6e-6f9c-b4df-bc7d-5e69af1b4a43.png)


「Save」をすると、LINE WORKSのログイン画面ポップアップが表示されます。
任意のLINE WORKSアカウントでログインし、認証を完了させます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/232f5b96-f76e-4e23-1cf8-2838d34277de.png)

ログインが成功するとMakeに戻り、Connectionの追加は完了です。

## 3. LINE WORKS APIのリクエストを作成
メンバー情報を取得するAPIのリクエストを作成します。

URLに `https://www.worksapis.com/v1.0/users/me` を入力します。
このAPIを使うことで、先ほど認証したLINE WORKSアカウントのメンバー情報を取得することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/0787ef08-6073-d424-282e-0e6caac916f8.png)

「OK」を押して設定は完了です。

## 4. APIを実行してみる

Senario画面の左下の「Run Once」からリクエストを実行してみます。

リクエストが成功すると、このように結果が表示され、「Output > Data」にメンバー情報が取得できていることがわかります。

今回はテスト的に実行しただけですが、モジュールをつなぎ合わせることで、取得したメンバー情報をもとに別のアクションを実行することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/5ef8ab8f-9e3a-5d9c-2097-9bac429c46ab.png)

例えば、このように組み合わせることで、そのメンバーの姓・名を抽出することもできます。

このシナリオは「HTTP」→「JSONにパース」→「値を抽出」と組んでいます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/a94aa7e6-5cbd-4937-0efb-e2ebdda9875e.png)


# まとめ
User Account認証がOAuth2.0に準拠しているため、トークン取得からAPI実行まですぐに実装できました。LINE WORKSの多彩なAPIと組み合わせたワークフローをMakeを使ってノーコードで実現できそうです。

こちらはBot APIを使った参考記事です。

https://qiita.com/iwaohig/items/a0fa5abf820e619176ac 

そしてこちらは、Makeを使ってStripeやkintoneと連携してみたというおすすめ記事です。

https://qiita.com/IshigiwaKenichiro/items/0fb45a26c798d78a7293