LINE API 紹介（2023/10/20更新）

# 概要

本記事は、ハッカソン参加者のために LINE が提供する API の概要、強み、公式ドキュメント、社外の開発者の皆様が公開されている実装手法をまとめたものです。

限られた時間の中で価値を最大化し、またそれを審査員に伝えるために LINE の API は皆様の大きな力となるでしょう！

:::note warn
紹介している実装事例記事は公開が古くそのままでは動かないことがあります。おかげさまでたくさんの記事を公開していただいておりますので、動かない時はググるか、メンターに質問しましょう！
:::


# Messaging API

## 概要

* LINE 公式アカウントの挙動を、開発したシステムと接続することでフルカスタマイズ可能にする API です
* ユーザーから公式アカウントへ送られたメッセージの受信、ユーザーへの送信ともに可能です
* ユーザーへの送信は`replyToken`と Reply API を利用した即時返信と、自由なタイミングで送信出来る Push API があります。Reply API はいくらご利用頂いても無料です
* リッチメニュー(トーク画面下部にあるグラフィカルなメニュー)、Flex Message 等で見た目もかなり自由にカスタマイズ可能です

## 公式リンク

### プロダクト

https://developers.line.biz/ja/services/messaging-api/

### ドキュメント

https://developers.line.biz/ja/docs/messaging-api/

## 利用プラン

* フリープランでもほとんどの機能がご利用できますが、Push API が月 200 通までに制限されます
* クレカ等無しで利用できます
* 詳しくはこちらを参照下さい https://www.linebiz.com/jp/service/line-official-account/plan/

## ハッカソンにおける強み

* Web App や Native App を作るのに比べ、工数が格段に低い
* デザインを全くせず、テキストを送るだけの実装でもハリボテ感が出ない
* プロトタイプ/MVP を作成するのには十分な機能がある
* ブラウザでの管理画面も API 並行利用出来るため、非エンジニアでも作品に貢献出来る場面が多い
* 審査員含め、ほとんどのスマホユーザーが利用している LINE 上にサービスを構築出来るため価値が伝わりやすい
* LINE グループに入れることも可能なため、複数人で使うアプリなどには好相性(割り勘、スケジュール調整等)
* インストール不要で試してもらいやすい

## 実装事例記事

### 開設

https://developers.line.biz/ja/docs/messaging-api/getting-started/

### ノーコードツール利用

#### Make

https://www.youtube.com/watch?v=LjN0VW1bg5w

https://make.com/

#### Pipedream

https://www.youtube.com/watch?v=fUY2Uz_ByVM

https://pipedream.com/

### トンネリングツール利用

#### VSCode built-in port forwarding

最近、VSCode に標準搭載されました。
公開範囲を`public`に変更するのを忘れずに。

https://qiita.com/youtoy/items/56e48c84d6a2f0549155

#### ngrok

ngrok は PC のローカル上で走っているアプリケーションをインターネット上に公開出来るサービスです。`http://localhost:5000`等の URL を`https://xxxxxxxx.ngrok.io`のような URL で誰でもアクセス出来る状態に出来ます。LINE Bot の開発段階ではよく利用されています。

#### Python

https://qiita.com/mintak21/items/fe9234d4b6a98bfc841a

#### JS

https://go-tech.blog/nodejs/line-chat-bot/

### AWS利用

#### Python

https://qiita.com/grapefruit1030/items/727bedb2867d90c7d1a6

#### JS

https://qiita.com/shinbunbun_/items/ae09364504002d0c25f1

### Google App Script利用

https://tech-lab.sios.jp/archives/33512

# LINEログイン

## 概要

サービスに LINE のアカウントを利用した認証認可機能を追加出来る API です。ログインの際に公式アカウントの友だち追加を促すことが可能です。

:::note warn
LINE ログインは Native/Web 向けに提供されていますが、Web の場合は後述の LIFF の利用を検討して下さい。
:::

## 公式リンク

### プロダクト

https://developers.line.biz/ja/services/line-login/

### ドキュメント

https://developers.line.biz/ja/docs/line-login/

## 利用プラン

無料

## ハッカソンにおける強み

* 認証認可の実装時間の短縮
* 公式アカウント連携による、LINE への通知機能

## 実装手法

### iOS/Android/Unity

https://developers.line.biz/ja/docs/line-login/getting-started/

### Web

LIFF のご利用をご検討下さい

# LIFF

## 概要

* LIFF = LINE Front-end Framework の略で、Web App に LINE アカウントと強力に連携出来る機能を追加出来るフレームワークです
* LINE ログインの機能が内包されています
* Web App 上から API を叩くことで LINE アカウントへのメッセージ送信が可能です
* LINE アプリ上だけではなく PC 等のブラウザ上でも動きます
* API を叩くだけで QR コードリーダーが起動し、読み取ることが出来ます

:::note info
LINE ミニアプリについては審査が必要であり、ハッカソンで利用するのは現実的でないため、LIFF の利用をご検討下さい
:::

## 公式リンク

### プロダクト

https://developers.line.biz/ja/services/liff/

### ドキュメント

https://developers.line.biz/ja/docs/liff/

## 利用プラン

無料

## ハッカソンにおける強み

* 認証認可の実装時間短縮
* Web アプリ上から LINE の友だちやグループへのメッセージ送信が可能になり価値が増す
* LINE と連携しつつ、公式アカウントだけでは難しいリッチなインタフェースの必要に応じた提供
    * 同一プロバイダ配下に Bot と LIFF のチャネルを作成することで、同一ユーザーを一意の ID で管理出来ます
* LINE 公式アカウントと併用することで非エンジニアでも活躍できる場面が増える

## 実装事例記事

### 開設

https://developers.line.biz/ja/docs/liff/overview/

### トンネリングツール利用

#### VSCode built-in port forwarding

最近、VSCode に標準搭載されました。
公開範囲を`public`に変更するのを忘れずに。

https://qiita.com/youtoy/items/56e48c84d6a2f0549155

#### ngrok利用

ngrok は PC のローカル上で走っているアプリケーションをインターネット上に公開出来るサービスです。`http://localhost:5000`等の URL を`https://xxxxxxxx.ngrok.io`のような URL で誰でもアクセス出来る状態に出来ます。LINE Bot の開発段階ではよく利用されています。

#### HTMLベタ書き

https://fuku-fk.com/8-line-liff/

#### Flutter

https://zenn.dev/tokku5552/books/flutter-web-liff-scheduler/viewer/0_intro

### AWS利用

#### CDK & React

https://speakerdeck.com/tokku5552/aws-cdk-x-reactdeliffwotukuru

#### Vue & Amplify

https://zenn.dev/goubou/articles/c7b1d5798f0038

# LINE Notify

## 概要

LINE Notify はシステムから LINE アカウントへのメッセージ送信をシンプルに実装出来る機能です。画像やスタンプも送信可能です。

## 公式リンク

### プロダクト

https://notify-bot.line.me/ja/

### ドキュメント

https://notify-bot.line.me/doc/ja/

## 利用プラン

無料

## ハッカソンにおける強み

* `Curl`等でエンドポイントを叩くだけで LINE アカウントへ任意のメッセージや画像を送信可能です
    * 特に IoT 関連のプロダクトには便利かと(郵便ポスト監視、人感センサー、監視カメラ等)

## 実装事例記事

### Raspberry pi

https://sozorablog.com/pythonline/

### obniz

https://blog.obniz.com/make/notify-line-mail-arrives

### M5Stack

https://sample.msr-r.net/m5stack-line-notify/

# LINE Pay API

## 概要

サービスに LINE Pay 経由の決済機能を実装できる API です。サンドボックス環境が用意されています。Bot、LIFF どちらにも対応しています。

## 公式リンク

https://pay.line.me/jp/developers/apis/onlineApis?locale=ja_JP

## 利用プラン

サンドボックス環境は無料

## ハッカソンにおける強み

* スポット、サブスク課金を簡単に実現でき、訴求力が増します

## 実装事例記事

### Python

https://qiita.com/maztak/items/39d46f0d83f895e626c8

### JS

https://qiita.com/ppt_msdg_maas/items/653e3f8b39734fd8ee94