【初学者向け】LINE WORKS API2.0を使ってBotを登録する

## はじめに

LINE WORKS Advent Calendar 2022 12日目です。

この度はお集まりいただきありがとうございます。
タイトルの通り、今回はLINE WORKSのAPIを使った初心者向けの記事を書こうと思います。

LINE WORKSのAPIといえば、今年の4月にバージョン1.0から2.0へとアップデートしてことは記憶に新しいですよね。
▼「LINE WORKS」のAPI2.0を提供開始 
https://line.worksmobile.com/jp/pr/20220404/

LINE WORKS APIの**Botを登録する**をハンズオン？形式で実践していきます。
これからLINE WORKS APIを触ってみようと思っている方向けの励みになればと思います。

## 環境の用意

### postmanのインストール
冒頭でもお伝えしましたが、今回は[postman](https://www.postman.com/)というツールを使った方法で実践していきます。
postmanは簡単にAPIのリクエストを試すことができる画期的なツールです。

postmanは以下のダウンロードページからダウンロードできます。（windows以外のOSの方はそれぞれのものを使ってね）
https://www.postman.com/downloads/

![スクリーンショット 2022-12-10 123807.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/bc89493d-3883-a41f-20c1-47e2fbf5ce1e.png)

### postmanを起動する

postmanが無事にインストール出来たら、英語よくわからない文字が書かれていると思います。
まずはAPIを実行するためのワークスペースを用意します。
トップページの左上あたりにworksspacesというボタンがあるので、そちらをクリック。

![スクリーンショット 2022-12-10 124524.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/fea06c6e-4fc5-c2f9-4903-53d9144894fa.png)

そしてCreate Workspaceで作成。

![スクリーンショット 2022-12-10 124920.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/4a2cc32a-b3e8-ff9e-eb80-b67841ebe4bb.png)

Worksapaceの名前などは各自で設定ください。
最後にcreateだ。

![スクリーンショット 2022-12-10 125001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/897887e7-c9c7-58ef-6982-4235cf2cec25.png)

### LINE WORKSの環境を用意

LINE WORKSのアカウントの用意は割愛するが、
HPから無料の環境を作成することができます。
▼HP
https://line.worksmobile.com/jp/

## LINE WORKS Developer Consoleでの設定

以下のリンクからDeveloper Consoleにアクセスします。

https://developers.worksmobile.com/jp/console/openapi/v2/app/list/view

そしてまずは、アプリの新規作成でアプリを追加する必要があります。
![スクリーンショット 2022-12-10 231009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/4ce44951-2396-f7b2-b3cc-bb74f37a6936.png)

作成すると、ClientIDとClient Secretという欄があるかと思います。
こちらは後ほど、認証を通すために使用しますので、メモ帳か何かに控えておくと良いです。

また、Redirect URLは任意のURLを設定ください。
![スクリーンショット 2022-12-10 231101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/d9c6937d-d867-374a-e801-bda9315c6d29.png)

保存すると無事に先ほどのRedirect URLが表示されているのが確認できます。
LINE WORKSには認証方法が2つありますが、今回はOAuthという認証を使ってAPIを実行してみようと思います。

なぜこの認証が必要なの？という質問が上がるかもしれないですが、ここでは割愛します。
（決して面倒くさいというわけではない・・・・・） 

![スクリーンショット 2022-12-11 154226.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/ff9528a7-2cde-c27b-9f5d-708600b24699.png)

OAuth Scopesで「bot」という箇所を選択してください。
ここでは様々なScopesが選択できますので、APIの公式リファレンスに基づいたものを選択する必要があります。

![スクリーンショット 2022-12-11 155124.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/ea12337a-aa58-17d4-1f46-7f01a1258838.png)

これで長い設定が一通り完了です。
ここまで来たらあとは認証を通して実行するだけです！あと少し頑張りましょう。

## postmanで実行する

### アクセストークンを取得する
先ほど、postmanでWorkspaceを作成したかと思います。
もう一度postmanのアプリケーションに戻ってきてください。

そしてページ上の方にある「New」というところをクリックしてください。
![スクリーンショット 2022-12-10 125650.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/23caf2a9-3d77-c6a4-7a71-0992c6393fb5.png)

「New」をクリックするとこんなモーダルが出てくると思います。
今回はHTTP通信で試してみますので、左上のHTTP Requestをクリックしてください。
![スクリーンショット 2022-12-11 161025.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/c2fa32fc-200c-650a-bd75-250f7664f5cf.png)

HTTP Reqestをクリックすると画面が少し変わると思います。
デフォルトでは画像のようにParamsのタブが開いていると思いますが、その隣のAuthorizationというところをクリックしてください。

![スクリーンショット 2022-12-11 161049.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/591fc4e6-99d3-af67-06d2-3096877cf97b.png)

認証情報のTypeを選択するボックスがありますが、ここではOAuth2.0を選択ください。
![スクリーンショット 2022-12-11 162245.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/802395f4-7e0d-0972-da7d-03d3735669ef.png)

クリックするとCurrent Tokenという画面が右側に表示されたかと思いますので、
必要な情報を入力していきます。

AuthURL、Access Token URLには公式リファレンスからの引用ですが、
以下の情報を入力してください。

``` Authorization Code OAuth Flow
Authorization URL - https://auth.worksmobile.com/oauth2/v2.0/authorize
Token URL - https://auth.worksmobile.com/oauth2/v2.0/token
```
また、、ClientIDとClient Secretには先ほどのDevelopper Consoleで取得してきた文字をぶち込んでください。
Scopeの項目には「bot」と入力してください。

後は画像の通り選択、入力してみてください。

![スクリーンショット 2022-12-11 161159.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/af03c53a-9ba2-d295-7313-1f7c04e336ef.png)

必要な項目を入力した後、ちょっとわかりにくいですが、
ページの下の方にある「Get New Access Token」というオレンジ色のボタンを押してください。

そうすると、LINE WORKSのロゴが入ったログイン画面が表示されたモーダルが出てくるかと思います。
ここにはLINE WORKSの管理権限のあるユーザーでログインしてください。

![スクリーンショット 2022-12-11 163405.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/b1a09f50-4b69-da96-8db1-ff7a851d88c6.png)

成功すると、以下のようなモーダルに切り替わります。
このまま右下の「Proceed」をクリックしてください。

![スクリーンショット 2022-12-11 163451.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/d8cced25-876b-7ea4-9862-5bbd4e58c91c.png)

この時点でLINE WORKS APIを実行するためのアクセストークンが手に入っている状態です。
アクセストークンはかならず必要になるので、取得しておきましょう。
オレンジ色の「Use Token」で使用することができます。

![スクリーンショット 2022-12-11 163507.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/f467e8bf-cabd-3b3b-ce03-ac6c7a89f1e1.png)

### APIを実行する
アクセストークンを取得してことですし、
実際にAPIを実行していきましょう。あとひと踏ん張り！！

今回は、公式リファレンスのBOTの登録というAPIを実行しますので、
公式に従って **メソッド** と**URL** を入力します。

![スクリーンショット 2022-12-11 163552.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/e63d41a6-555a-2cb4-1df0-2b763351bc5b.png)

https://developers.worksmobile.com/jp/reference/bot-create?lang=ja

リファレンスにもある通り、リクエストBodyというものが必要になります。
具体的には、

* ボットの名前
* ボットの説明
* ボットプロフィール画像のURL

などがリクエストBodyに乗せることができます。

下の方のBody→rawと選択し、右側の「Text」とある個所は「JSON」に変更してください。
ここでリクエストするための必要項目をJSON形式で指定していきます。

![スクリーンショット 2022-12-11 163612.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/4722e205-33f3-5e23-8daa-14b8eed75260.png)

そしてリクエストするためのJSONを書きます。
~~私はよく洗濯機を回し忘れてよく怒られるので、洗濯機を回すように催促してくれるBotを作成します。~~

administratorsは必須ですので、ご自身のユーザーID（example@example.co.jp）を入力してください。

![スクリーンショット 2022-12-11 170012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/91292607-1310-cff8-1363-ee2f4cbfdd43.png)

#### そして最後にSENDだ！！！（右上の青いボタン）

成功していると応答が返ってきます。

再度、Developper Consoleに入り、Botというところをクリックしてください。

https://developers.worksmobile.com/jp/console/bot/view

無事に成功しているとボットが作成できていると思います。
長かったですね。お疲れさまでした。
![スクリーンショット 2022-12-11 170128.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952868/b26f8e10-191c-f84d-4269-cad5033d3eca.png)


## 最後に

いかがだったでしょうか？
もしもわかりづらい点などがございましたらコメント欄にてお願いいたします:thinking: 

#### 最後に少し宣伝！！！！

10/24に名古屋でLWTTというコミュニティを開催しました。
次回は2月ごろを予定しておりますので、
ちょっとでも興味のある方、ぜひぜひ足を運んでください！！

それではまた。