linebotの作成をしてみた(準備編)

# (1)はじめに
linebotの作成を行う。(テーマは執事BOT)
この記事は、開発するための準備やら、環境設定やら…
色々な記事を調べまわって大変だったため、自分なりのメモとしてまとめてみた。

実装編：https://qiita.com/maihamada/items/009f6b37baf34f9b7c6c

## 説明していく内容
- LINE Developers *1
- HEROKU *1
- GitHub *1
- Python周りの設定(flaskを使用)
<br>

*1 アカウント登録をしておく

## 私の環境
mac os 10.14.6
python 3.8.1


## 参考
- LINE Developers の用語は、以下で調べる<br>
https://developers.line.biz/ja/docs/glossary/

# (2)チャネルの準備(LINE Developers)
まず、LINE Developersへのログインを行う。
## LINE Developersでプロバイダーの作成を行う
プロバイダーを表示する画面で、作成ボタンを押下。
プロバイダー名(チーム名など)を入力し、作成ボタンを押下するとできる。
<img width="1126" alt="スクリーンショット 2020-05-04 16.45.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/53566f73-d8d7-b047-d4a9-ac0e9f2c0c9c.png">

## チャネルの作成を行う
チャネルの作成の画面に従って記入していく。
チャネルの種類は、「Messaging API」を選択すること。
<img width="1140" alt="スクリーンショット 2020-05-04 17.09.17.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/1819954f-9fa9-919c-187d-273b59e91e0f.png">
<img width="1163" alt="スクリーンショット 2020-05-04 17.10.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/ba01e489-709d-a312-f1fd-a39eb03b202f.png">
<img width="1133" alt="スクリーンショット 2020-05-04 17.10.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/64a51923-cf9d-8ac4-b09f-8e10004d8758.png">

作成ボタンを押下したら、チャネルの作成完了。

## 必要な設定を取得する
あとで使用するので、どこかにメモをしておく。
・チャネルシークレット：チャネル基本設定 -> チャネルシークレット
・チャネルアクセストークン：Messaging API設定 -> チャネルアクセストークン(発行すること)

# (3)GitHubの準備
heroku gitでもいいけど、GitHubでコード整理したかったので、使った。
GitHubにログインしておきます。
## リモートリポジトリの作成
new repositoryを押下。
<img width="1056" alt="スクリーンショット 2020-05-04 17.54.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/cd87fe36-f267-7275-8447-82d004c542fa.png">
Repository nameを記載し、gitignoreにpythonを設定。
<img width="754" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3633313535342f31333533363966352d356533302d663965302d303432392d6536393230346231343030352e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/7115436f-e61a-52cb-5eba-3ca188e6bb0b.png">


## SSH keyの設定
以下のサイト参考にさせていただいた。
https://qiita.com/shizuma/items/2b2f873a0034839e47ce

## リモートリポジトリの取得
ターミナルで、以下を実行。

```
$ cd [作業ディレクトリ] 
$ git clone [Git hubのSSH key(git@github.com:~)]
Cloning into '[リポジトリ名]'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
```


# (4)サーバーの準備(HEROKU)
## appの作成
HEROKUにログイン後、左上の Dashboardを選択。
<img width="1411" alt="スクリーンショット 2020-05-04 17.28.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/7b445717-9474-5462-36d0-e092126d2f36.png">

NEW->Create new appボタンを押下すると以下の画面が出てくる。
App nameを記入し、Create Appを押下。
<img width="699" alt="スクリーンショット 2020-05-04 17.35.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/e4845f98-a0ee-87f4-6c11-034bdb70b79e.png">


## GitHubと連携
Deployタブで、GitHubを指定。
ブランチ名を指定して、connectを押下すると連携完了。
<img width="1239" alt="スクリーンショット 2020-05-04 18.14.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/a55195fc-24ba-5398-114a-2f4360bfd83b.png">



# GitHubから自動デプロイが行えるようにする
以下の赤で囲ったボタンを押すのみ。
<img width="1228" alt="スクリーンショット 2020-05-09 13.53.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631554/aa5e70b5-4784-b288-8817-7aaf34c13429.png">

# (4)pythonにライブラリを入れていく
今回使ったライブラリを入れていく。以下をターミナルで実行する。

```
$ pip install flask
$ pip install line-bot-sdk
```

以下のコマンドで、ライブラリを確認し、書かれていたらOK。

```
$ pip freeze
```

これで準備はおわり。実装に入っていく。