Hello LINE Things

# LINE Thingsって何ですか？
> LINE Thingsは、LINEを介して、チャネルとBluetooth® Low Energy対応デバイスを連携し、操作を可能にするIoTプラットフォームです。

https://developers.line.biz/ja/docs/line-things/about-line-things/

LINEでって書いてあるけど、LINEでIoTデバイスと連携ってあんまりイメージ湧かない。というかそんなにうれしくない気がする。どう活用できるんだろう？
ただ、LINE Front-end Framework（LIFF）ってのがあって、これと連携っていうのはいろいろ便利そう。LIFFありき？

# LIFF

> LINE Front-end Framework（LIFF）は、LINE内で動作するウェブアプリのプラットフォームです。

LIFFに登録したウェブアプリ（LIFFアプリ）をLINE内で起動すると、LINEのユーザーIDなどをLINEプラットフォームから取得できます。LIFFアプリではこれらを利用して、ユーザー情報を活用した機能を提供したり、ユーザーの代わりにメッセージを送信したりできます。

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

(ぜんぜん関係ないけど[LINE SDK for Flutter](https://developers.line.biz/ja/docs/flutter-sdk/)ともあるのか。お手軽そうだし触ってみたい。。)

# Hello LINE Things

そんなわけでLIFFとLINE ThingsとESP32デバイスを使ってHello worldしてみようと思います。一回どんなものか試してみないとイメージが膨らまない。

いやね。[LINE Things Mini Award](https://engineering.linecorp.com/ja/blog/line-things-mini-award-2019/)ってのがあるらしくて何か応募だけでもできないかと思いまして。

ちなみに今回使うのはこれ。今ちょうど余ってるので。

![TTGO-T-Camera.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/6827c747-e6c5-f47a-f8c9-7f9f209d7fd3.png)

http://www.electronics-lab.com/ttgo-t-camera-esp32-cam-board-oled-ai-capabilities/

# LINE Things Starter を試してみる

https://engineering.linecorp.com/ja/blog/line-things-developer-trial/

こちらの**LINE Things Starter を試してみる**あたりからを参考にしつつ進めていきます。

まずmacにarduino ideが入ってなかったので入れました。https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md に書いてあるボードマネージャも追加しておく。
次にhttps://github.com/line/line-things-starter/ をcloneして、esp32/arduino/sample/sample.inoを開いて、とりあえず焼いてみる。

## 手順
line-things-starter/esp32/README.ja.md

で、ちょっといろいろ試行錯誤はあったものの、ちゃんと焼けて、Bluetoothもスマホからは見えてて問題なさそうなんだけど・・

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/a10de664-5238-f726-15bf-b913ea06b9c5.jpeg" width="55%">

LINE Things からはいくら待っても見つからず。。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/8e8f73bc-c57f-e01f-bf6b-e1d92505aaf8.png" width="55%">

# 一旦諦める。

わからんのや。
公式ドキュメントに沿った流れに乗ってみます。

# 作業の流れ

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

公式のドキュメントです。ひとまずはこれに沿ってやります。

1. Messaging APIのチャネルの作成
2. LIFFアプリを作成する
3. ボットアプリを作成する
4. デバイスの作成
5. LINE Thingsを試してみる

## 1. Messaging APIのチャネルの作成
すでに使えるのはある事はあるんだけど、適当なのを一から作ってみます。

![スクリーンショット 2019-06-30 18.03.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/ae4bc445-be92-1f1a-ac56-7b745d4a544d.png)

どうせ公開しないので適当です。
このページのチャネルシークレットとアクセストークンが必要らしいです。

## LINE ThingsのスターターLIFFアプリをデプロイする
>独自のLIFFアプリを作成する場合は、『LINE Front-end Frameworkドキュメント』を参照してください。

とありますが、ひとまずは簡単な方で。

https://developers.line.biz/ja/docs/line-things/create-starter-liff-app/

1. https://github.com/line/line-things-starter/ をfork
2. フォークしたリポジトリの［Settings］をクリックし、「GitHub Pages」の「Source」の［None］をクリックして、［master branch］をクリックします。
3. github pages完成
4. Messaging APIのチャネルにLIFFアプリを追加します。

![スクリーンショット 2019-06-30 18.09.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/309bd0dd-0496-75ed-2557-1afe7ab5b02d.png)

ここからやるみたい。エンドポイントURLは**https://{github username}.github.io/line-things-starter/liff-app/**みたいな感じらしいです。

## ボットアプリを作成する

今回はスキップ

## デバイスの作成
### デバイスを作成します。
### LIFFアプリを完成させます。
ESP32とかにserviceUuidのようなLINE Thingsとして識別できる情報を埋め込んだりしつつデバイスを作る。line-things-starterのgithubのコードで概ね問題ないと思うのだが・・はて。
/liff-app/liff.jsのUSER_SERVICE_UUIDとかがデバイス側と一致してれば問題なさそう。

## LINE Thingsを試してみる

https://developers.line.biz/ja/docs/line-things/try-line-things/

スマホでサイト上のQRコードを読み込んでLINE Thingsの画面に。
そしてデバイスを見つけたら連携する。

いや、これが見つからんのですわ。。


・・お？

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/e4b831d5-1774-917d-80af-8a5072a651b4.jpeg" width="66%">


なんかアイホンで試してみたらうまくいきましたし。
俺のドロイドさんがなんかあかんのかな？

![x4to0-c6xn6.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/6f278557-73c2-1abd-0515-8fff24c7ad95.gif)

ほんとはもうちょっとやりたい事があったんだけど、今日のとこまではここまでにしといたる。
ちょっと中途半端だけど。
でもmacにarduino環境作れたしよかった。

その中途半端なソースはここ。完全にプロトタイプだけどおそらくこれは放置でまた新しく作る。
https://github.com/ikegam1/arduino-linethings-tutorial