LINE Bot + Clova スキル開発 Python Django チュートリアル(準備編)

# LINE Bot + Clova スキルを Python Django で作って動かす！

Bot 開発はこちら
**[LINE Bot + Clova スキル開発 Python Django チュートリアル(LINE Bot 開発編)](https://qiita.com/TakeshiSaito/items/7b55aaf963f9228d6945)**

スキル 開発はこちら
**[LINE Bot + Clova スキル開発 Python Django チュートリアル(Clova スキル 開発編)](https://qiita.com/TakeshiSaito/items/2fb23316a146a6aaf47e)**

最初に Bot + スキルを作ってみたのが node.js だったのそれを引きずっていたのですが
CEK の Python SDK が提供されたので使ってみるかぁ。って感じで初めて見ました。

このチュートリアルでは、私の中で Hello 的な扱いの「占い(星座毎に固定の結果)」を作ります。

[SDK of the LINE Messaging API for Python](https://github.com/line/line-bot-sdk-python)
 → LINE Bot 開発に使う

[Clova Extension Kit SDK for Python](https://github.com/line/clova-cek-sdk-python)
 →　Clova スキルの開発に使う

この２つは後で pip install するのでダウンロードはしなくて大丈夫

リンク先を見ていただくとわかりますが Flask のサンプルが載っています。
使うの簡単、軽量だしハンズオンにうってつけのフレームワーク
ですがあえて Django 使います。

そんな私もハンズオンする側なら Flask 使います。

元々、Django は使ったことがあったので、それで作ってみたらどんな感じ？のお試しが趣旨です。

お試しなので CE の PyCarm 使う前提で書きますが、PE だと Django 周りの色々を自動でやってくれて楽ちん。

## ドキュメント
- [Bot 開発に関して](https://developers.line.me/ja/docs/messaging-api/overview/)
- [スキル開発に関して](https://clova-developers.line.me/guide/)

## 開発環境
- 言語: Python 3.7 [本家](https://www.python.org/downloads/)
- IDE: PyCharm [JetBrains 様](https://www.jetbrains.com/pycharm/download/)
- ポートフォワード: ngrok [本家](https://ngrok.com/)

IDE に関してはお好みなのですが、資料内では PyCharm で進めます。

## 準備１(大物いれる)
### Python インストール
インストーラーのダウンロード先を探すのが少し面倒かもしれません。
私は Windows 10 を使っているので下の画像のような感じに辿りました。

![python_1.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/3f2c16de-cf96-b719-654a-cb38582faba7.jpeg)

![python_2.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/75e060c6-3c8e-7f0e-0072-7b8a1fd41c86.jpeg)

### PyCahrm インストール
すみませんが、インストールしたのが大分前で画像も操作も詳細はありません。
Yes Yes Yes でいけるはず。

### ngrok インストール
といっても zip を解凍したら
![ngrok.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/120b608a-7d0d-84e8-e9a2-9324c6547734.jpeg)
って感じで exe が入っちょるだけです。

## 準備２(主に pip 関連)
### PyCharm 起動
先ほどインストールした PyCharm を起動してプロジェクトを作ります。

![pycharm_1.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/a354a6a1-d0a5-90c5-a35e-78a0ba7c8a37.jpeg)

起動したらこんな感じ。「Create New Project」をクリックしましょう。

![pycharm_2.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/15a7d8f7-5450-aebe-7870-446b1dcb8632.jpeg)
※Pro 版なので見た目が違うかもしれませんが左側で Pure Python が選択されていれば大丈夫

上の Location はプロジェクトを作成するパスを指定してください。
New environment using を選択して、こちらの Location には venv[^1] を作成するパスを指定します。
Base interpreter は、先ほど Python をインストールしたので、それを指定しましょう。
~\Python\Python37\python.exe というパスになるはず。

![pycharm_3.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/a6648947-266c-fae9-3995-90b609533ed1.jpeg)

できたできた。

### ライブラリーを入れる
次、必要なライブラリーを pip で入れていきましょう。

![pycharm_4.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/7c378eb7-b3f2-3b48-a7eb-09f5444319a7.jpeg)

Settings クリックして

![pycharm_5.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/2a096ac7-4ab5-72b5-2e43-1589b80c5f2b.jpeg)

Project Interpreter に先ほど作成した uranai が指定されていますね。

右上の + をクリック！

![pycharm_6.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/54dff7a3-ebaf-fff3-db48-af90287aefe7.jpeg)

必要なライブラリーを選択(上の虫眼鏡のところにライブラリー名を入れると絞り込めます)して、左下の Install Package をクリックでインストールできます。

入れるのは以下

- Django
- line-bot-sdk
- clova-cek-sdk

![pycharm_7.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/80fc2224-c6cd-3881-22d9-46928d3ebd7d.jpeg)

入れ終わるとこんな感じ。指定した 3 つのライブラリーが依存するライブラリーも一緒にはいるのでいっぱい表示されているけど気にしない。

## Django 関係の準備
今回は Web フレームワークに Django を使うので関係する準備をしていきます。

### 作ったプロジェクトを Django プロジェクトにする
画面下の Terminal をクリック

![pycharm_8.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/680675bf-f4de-4c40-ec9a-150e2526229f.jpeg)

ここでも uranai が有効になってますねぇ。パスはプロジェクトフォルダーの直下
それが確認できたら画像の通り `django-admin.py startproject config .` を実行して Django プロジェクトだよ。って教えてあげる。

![pycharm_9.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/603822bc-d705-1fc7-a21a-3b84fec976b2.jpeg)

最小限のファイルを作ってくれますね。

### Django プロジェクトの実行構成
右上の Add Configuration をクリック

![pycharm_10.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/3270c403-017f-51d8-9bb3-54e6cdc53724.jpeg)

左上の + をクリック

![pycharm_11.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/3933b8c2-6525-c34a-89f4-f2def4940dac.jpeg)

![pycharm_12.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/03a07490-548a-f99a-1e71-4df7f98ca553.jpeg)

上から Name に uranai
Script path にさきほど、django-admin を実行した際に自動で作られた manage.py
Parameters に `runserver` を指定します。

後は最初から入力されているはず。

OK クリック

![pycharm_13.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/66f27c69-66f1-9c2c-cced-52108526ea29.jpeg)

右上で uranai が選択されていればいい感じ。
ついでに一度 起動してみましょう。
uranai の右側にある再生(三角)をクリック

![pycharm_14.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/d61c1d09-607e-c1bc-7b0e-0e7ecb547bf1.jpeg)

こんな感じになれば良きかな。

リンクの http://~ をクリックすると
ブラウザーでこんなページが開かれます。

![pycharm_15.jpg](https://qiita-image-store.s3.amazonaws.com/0/276015/82bca373-dda8-8128-f5dc-a26633ed98b5.jpeg)

**この記事ではここまでです。お疲れさまでした。**

Bot 開発はこちら
**[LINE Bot + Clova スキル開発 Python Django チュートリアル(LINE Bot 開発編)](https://qiita.com/TakeshiSaito/items/7b55aaf963f9228d6945)**

スキル 開発はこちら
**[LINE Bot + Clova スキル開発 Python Django チュートリアル(Clova スキル 開発編)](https://qiita.com/TakeshiSaito/items/2fb23316a146a6aaf47e)**

[^1]: venv は Python 標準でついている仮想環境を作るやつです。プロジェクト毎に使うライブラリーが違うので環境が混ざらないようにします。