LIFFアプリをNetlifyでホスティングし、LINEアプリ上で確認する方法

自作したLIFFアプリをLINE上で確認するために、Netlifyでホスティングし、LINE上で確認する方法を記載する。
LIFFアプリとは、LINEのトークルーム内で機能するWebアプリケーションである。通常のWebアプリケーションにSDKを導入することによりLIFFが提供する機能を利用できる。
Netlifyは静的ウェブページをホスティングできるサービスである。


## 目次
1. 前提
1. 手順
    1. 静的ウェブページを作成する
    1. Netlifyでホスティング（※1）する
    1. Line Developers（※2）の設定をする
    1. Lineアプリで確認する
    1. 番外編1. 作成したLIFFアプリを公開する
    1. 番外編2. ページ内容を変更し、再デプロイする
1. 参考文献


（※1）Netlifyでホスティングすることで、静的なサイトを公開できる
（※2） LINE Developersサイトとは、LINEのサービスと連携できるプロダクトを開発できるサイトのこと

## 1.前提
手順を始める前の確認事項を記載する。

以下の2つのアカウントがあることを確認する。
1. [Netlify](https://app.netlify.com/)のアカウント
1. Lineのアカウント

※Netlifyへのデプロイは通常Githubと連携して行う。しかし、今回はローカルフォルダをそのままNetlifyへデプロイする。


## 2. 手順
LIFFアプリを、NetlifyでホスティングしてLINEで確認するための手順を記載する。

### 2-1. LIFFアプリを作成する
HTML、CSS、JavaScriptでLIFFアプリを実装する。
コード内容は今回は省略する。

※LIFF SDKを組み込む方法について
HTML内にCDNパスを指定してLIFF SDKを組み込む。
```
<script charset="utf-8" src="https://static.line-scdn.net/liff/edge/2/sdk.js"></script>
```


### 2-2. Netlifyでホスティングする
静的ウェブページをNetlifyでホスティングする手順を記載する。

#### 2-2-1. Netlifyにサインインする
[Netlify](https://app.netlify.com/)に自身のアカウントでサインインする。
以下の画像は、サインイン後のTOPページである。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/a1fe8e37-65f5-0283-df8f-32da18d43d6e.png)

#### 2-2-2. new siteとしてデプロイする
1. NetlifyのTOPページから、Add new site > Deploy manuallyを選択する。
選択後、以下の画面が出てくる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/2cf4f14e-db10-d20d-59ac-5f18975f2c6c.png)

2. ローカルフォルダをアップロードする。
上記画像のbrose to uploadを選択する。

3. 作成したwebページが格納されているフォルダをアップロードする。

4. TOPページに戻る。

5. Sitesの欄にある作成したSitesを選択する。
作成したサイトを選択後に出てくる画面は以下である。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/5e91bcd3-eb09-35af-9e40-60f4b46c4440.png)

6. タイトルに表示されているURLを押下する。
デプロイした内容がブラウザ上で表示できることの確認ができる。
また、デプロイしたNetlifyのURLは今後使用するのでメモする。


### 2-3. Line Developersの設定をする
Line DevelopersにLIFFアプリとして設定する手順を記載する。

#### 2-3-1. LINE Developersへログインする
[Line Developers](https://developers.line.biz/ja)に自分のLineアカウントでログインする。

#### 2-3-2. プロバイダーを作成する
※プロパイダーとはLINEプラットフォームを通じてサービスを提供する個人または組織の情報のことである。
1. ホーム画面、プロバイダー右にある「作成」ボタンを押下する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/313b8a48-6383-5c6f-cc22-5e40dc22f806.png)

1. 新規プロバイダー作成画面で任意のプロパイダー名を入力し、「作成」ボタンをクリックする。
今回はプロバイダー名に「chatGPT」を使用する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/bad8aa05-cb7e-c45b-4d00-e00d38f998eb.png)


#### 2-3-3. チャネルを作成する
※チャネルとはLINEプラットフォームが提供する機能を利用するための通信路のことである。
1. 以下「LINEログイン」を選択し、チャネルを作成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/d45cec61-9805-26d7-d58e-b63c541cd010.png)

1. 以下の画像を参考に設定する。
チャネル名、チャネル説明は任意ものを設定する。

今回の設定値
|No. |項目名 |設定値|
|---|---|---|
|1  |チャネルの種類  |LINEログイン  |
|2  |プロバイダー  |chatGPT  |
|3  |サービスを提供する地域 |日本  |
|4  |会社・事業者の所在国・地域|日本 |
|5  |チャネルアイコン |- |
|6  |チャネル名 |カウントアップ・ダウンタイマー |
|7  |チャネル説明 |カウントアップ・ダウンタイマー |
|8  |アプリタイプ |ウェブアプリ |


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/e99bf94e-c293-33f0-5312-377c9aee54ee.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/54c2479b-2856-69ac-6061-3ec7e9fcedd9.png)

#### 2-3-4. LIFFアプリを追加する
1. 2-3-3で作成したチャネルのページのLIFFタブを選択する。
1. LIFFアプリの右の「追加」ボタンを押下する。（画像参照）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/2593636c-2066-92ed-4ae1-33f40214cf4d.png)
1. 以下の設定値を参考に、LIFFアプリを作成する。

今回の設定値
|No. |項目名 |概要|設定値|
|---|---|---|---|
|1  |LIFFアプリ名  |LIFFアプリの名前。|カウントアップ・ダウンタイマー |
|2  |サイズ|画面に表示されるLIFFアプリの画面サイズのこと。次のサイズがある。<br>・Compact（半分ぐらい）<br>・Tall（4分の3ぐらい）<br>・Full（フル画面）|Full |
|3  |エンドポイントURL|LIFFアプリを実装したウェブアプリのURLのこと。<br>LIFF URLを利用してLIFFアプリを起動した際に、このURLが利用される。|NetlifyにデプロイしたURL |
|4  |scope|LIFF SDKの一部のメソッドを利用するために必要なスコープ。以下4つの設定値がある。<br>・openid（※1）<br>・email（※2）<br>・profile（※3）<br>・chat_message.write（※4）|すべてOff |
|5  |ボットリンク機能 |ユーザーがアプリにログインするときに、LINE公式アカウントを友だち追加するオプションを表示する設定。以下3つの設定値がある。<br>・On (normal)：LIFFアプリの権限の同意画面に、LINE公式アカウントを友だち追加するオプションを追加する。<br> ・On (aggressive)：LIFFアプリの権限の同意画面の後に、LINE公式アカウントを友だち追加するかどうか確認する画面を表示する。<br>・Off：LINE公式アカウントを友だち追加するオプションを表示しない|On(ノーマル) |
|6  |Scan QR|LIFFアプリでLINEの二次元コードリーダーを起動し、読み取った文字列を取得する場合はオンにする。|Off |
|7  |モジュールモード |LIFFアプリをモジュールモードで使用する場合は、オンにする。オンにすると、右上の共有ボタンが非表示になる。|Off |

（※1）ユーザーのIDトークン（ユーザー情報を含むJSONウェブトークン）を取得するメソッドおよびLIFF SDKが取得したIDトークンのユーザーの表示名、プロフィール画像のURL、メールアドレスなどの情報を取得するメソッドを使用するためのスコープ。
（※2）ユーザーのIDトークン（ユーザー情報を含むJSONウェブトークン）を取得するメソッドおよびLIFF SDKが取得したIDトークンのユーザーの表示名、プロフィール画像のURL、メールアドレスなどの情報を取得するメソッドでメールアドレスを取得するためのスコープ。
（※3）現在のユーザーのプロフィール情報を取得するメソッドおよびユーザーとLINE公式アカウントの友だち関係を取得するメソッドを使用するためのスコープ。
（※4）ユーザーの代わりに、LIFFアプリが開かれているトーク画面にメッセージを送信するメソッドを使用するためのスコープ。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/7087b3d9-3c2d-0334-68df-bf9f5cee0cf9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/c5d2b0e4-9dc5-3574-17ec-c147b77335ca.png)


### 2-4. 動作確認する
実際に、LINE上で開いて動作確認する。

1. LIFF URLをLINE内の任意のトークルームに送信し、URLをタップする。
※LIFF URLはチャネルのLIFFタブに記載されている。（画像参照）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/f1319b14-0fb2-ba2c-d120-7affcce438f6.png)


2. 以下の認証画面の「認証」を押下する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/0e324188-c354-cf02-b008-23df913c63dd.png)

※認証は初回のみで、1度認証を許可すると認証画面は出てこない。

LINE上でウェブページが開く。
3. LINE上でLIFFアプリを表示できることを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/f3c8a692-6e3a-e0da-7d08-8f4a5a32610f.png)


### 2-5-番外編1. 作成したLIFFアプリを公開する
NetlifyのURLを、エンドポイントURLに設定しただけでは公開はできていない。
表示ができるのはdeveloperのみである。
他人も開ける状態にする方法を記載する。

公開するためには、「LINEログイン」の右の項目「開発」を押下して、「公開済み」に変更する。
以下画像は公開後のため、「LINEログイン」の右の項目は、「公開済み」である。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/f1319b14-0fb2-ba2c-d120-7affcce438f6.png)

### 2-6-番外編2. ページ内容を変更し、再デプロイする
デプロイ済みの静的ウェブページを再デプロイする手順を記載する。

1. Netlifyの該当サイトの設定画面を表示する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/0a602292-0da4-2218-bf6e-e6e13391880c.png)
2. Deploysタブを選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329691/c0d678af-ed9f-6002-6aaf-38e2143ababa.png)
2. browse to uploadボタンを押下する。
2. 更新したフォルダをアップロードする。

以上で完了。


### 3. 参考文献
今回参考にした資料を記載する。
・LINE公式「[LIFFスタータアプリの始め方](https://developers.line.biz/ja/docs/liff/trying-liff-app/#how-to-start-liff-starter-app)」
・Qiita記事「[NetlifyにデプロイしてLIFFアプリを爆速でつくってみる](https://qiita.com/greenteabiscuit/items/c02c0c405ac08beccea9)」
・LIFFアプリについて「[LIFFとは？LINE上で動作するアプリの機能や開発方法、活用事例を解説](https://monstar-lab.com/dx/about/about-liff/#:~:text=LIFF%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AFLINE%E3%81%AE,ID%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82)」
・デプロイについて「[デプロイとはどういう意味？ビルドやリリースの違いとは](https://hnavi.co.jp/knowledge/blog/deploy/#title3)」
・チャネル設定（LINE公式）「[LIFFアプリをチャネルに追加する](https://developers.line.biz/ja/docs/liff/registering-liff-apps/#registering-liff-app)」