TENKitとGoogle Apps Scriptの連携（条件分岐編）

**本記事は、[TENKit](https://tenkit.jp/) の応用的な利用について説明いたします。
事前に基礎編「 [TENKitとGoogleスプレッドシートの連携（簡単記録編）](https://qiita.com/tetotetote/items/bbacc6671b7b9f5846b3)」をご確認いただきますようお願いします。**

[TENKit](https://tenkit.jp/) （テンキット）は「テンキー」を「IoT」化するキットです。
[TENKit](https://tenkit.jp/) では、テンキーで入力された「数字」と、Googleスプレッドシートなどクラウド上のサービスを簡単に結びつけることができます。

ここでは、[TENKit](https://tenkit.jp/) の応用的な利用として、テンキーから入力された値に基づき、条件分岐して別の異なる処理を行う方法について説明します。
具体的には、テンキーからの入力に「*」が含まれている場合と含まれていない場合とで、それぞれ異なるシートに値を記録する方法について記載します。
![スクリーンショット 2019-09-11 11.46.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/c2b4cce0-639f-af63-def2-23e78485258b.png)
これにより、テンキーからの入力を工夫することによって、1つの[TENKit](https://tenkit.jp/) を複数の用途に利用することが可能になります。

# 設定前の準備

条件分岐編の連携を設定する前に、以下の項目を確認してください。

**1. 基礎編をマスター**

**事前に基礎編「 [TENKitとGoogleスプレッドシートの連携（簡単記録編）](https://qiita.com/tetotetote/items/bbacc6671b7b9f5846b3)」をご確認いただき、TENKitの基本的な利用方法についてマスターしていただくようお願いします。**

**2. Googleスレプッドシートを開く**

[Googleスレプッドシート](https://www.google.com/intl/ja_jp/sheets/about/ "Googleスレプッドシート") にアクセスし、新しいスプレッドシートを作成して、名前を「TENKit分岐」として保存します。
![スクリーンショット 2019-09-11 14.26.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/ab9e747a-eb79-1e23-f707-ceb3452adab8.png)

**3. 「メイン」シートを用意**

作成したGoogleスプレッドシート「TENKit分岐」の下部のシート部分で、シート名を「シート1」から「メイン」に変更します。
![スクリーンショット 2019-09-11 14.34.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/cba58fce-f24b-516d-2288-9734cdd21704.png)

**3. 「サブ」シートを作成**

続いて、横の「+」ボタンを押し、シートを追加します。
追加したシート名を「サブ」に変更してください。
![スクリーンショット 2019-09-11 14.35.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/772f8b4d-c5f6-375e-5201-db47ac278348.png)

# 連携の設定

コードを作成し、公開してWebhook URLを取得後、TENKitに登録します。

## コードの作成

上部の「ツール」メニューより「スクリプトエディタ」を選択し、Google Apps Scriptの編集画面を開きます。
スプレッドシートと同じく、名前（プロジェクト名）を「TENKit分岐」に設定します。
![スクリーンショット 2019-09-11 14.41.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/23b16dd1-3106-2228-b33d-21f0bfb376f7.png)
元のコードを全て削除し、「コード.gs」に下記のコードを記載します。

```javascript
// POSTリクエストに対する処理
function doPost(e) {
  // TENKitから送信された情報の取得
  //   message    : 送信された内容
  //   created_at : 送信された時間
  var contents = JSON.parse(e.postData.contents);
  var message = contents.message;
  var created_at = contents.created_at;

  // スプレッドシートの取得
  var ss = SpreadsheetApp.getActive();
  //「*」が含まれていない場合
  if(message.indexOf("*") == -1){
    // シート（メイン）を取得
    // 取得した情報を追加（appendRow）
    var main_sheet = ss.getSheetByName('メイン');
    main_sheet.appendRow([created_at, message]); 
    
  // 「*」が含まれている場合
  } else {
    // シート（サブ）を取得
    // 取得した情報を追加（appendRow）
    var sub_sheet = ss.getSheetByName('サブ');
    sub_sheet.appendRow([created_at, message]);    
  }  
}
```
「message」に「*」が含まれているかどうかを確認し、メインまたはサブのどちらのシートに書き込むか、処理を振り分けています。
ここで、一旦、実行ボタン ![スクリーンショット 2019-04-10 11.42.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/20cf2ca4-1e25-cba8-bbb1-cf8a7ccb0064.png) を押してコードの承認手続きを行ってください。
「このアプリは確認されていません」というアラートが表示された場合は、左下の「詳細」をクリックし、次に「TENKit分岐（安全でないページ）に移動」をクリックして承認手続きを実行してください。

承認手順実行後に、「postDataを読み取れません」というエラーが発生しますが、問題ありませんので、そのまま次の手順に進んでください。

## コードの公開

コードを公開し、Webhook用のURLを作成します。
Google Apps Scriptの編集画面の「公開」メニューより「ウェブアプリケーションとして導入」を選択します。
![スクリーンショット 2019-09-12 17.42.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/0cecc1f2-790d-189a-1f8d-efbc3d365d75.png)
以下の画面が表示されるので、「アプリケーションにアクセスできるユーザー」に「全員（匿名ユーザー含む）」を選択して「導入」ボタンを押してください。
![スクリーンショット 2019-09-10 17.25.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/0a9bac5b-7eae-0b79-c3cc-e64c0e955e0d.png)
その後、以下の画面が表示されれば成功です。
![スクリーンショット 2019-09-10 17.26.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/df37f878-b60a-455f-5f44-c749b2be48a7.png)
最後に「ウェブアプリケーションのURL」を以下専用の設定ページで登録します。
[![スクリーンショット 2019-09-10 17.45.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/0ec1a3af-ba00-8eec-a628-547b848d6dea.png)](https://tenkit.jp/webhook/register)

## テンキーから入力

最後に、TENKitに接続されたテンキーを入力します。
以下のように、スプレッドシートに入力内容が記録されれば成功です。

・「*」が含まれていない場合
![スクリーンショット 2019-09-11 14.47.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/38ea9cad-9ad2-f916-b669-21f2d4730133.png)
・「*」が含まれている場合
![スクリーンショット 2019-09-11 14.48.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160696/4b3a9a3d-a44c-71ff-8ce6-104401640fa4.png)
ここで何らかのエラーが発生した際は、スマホアプリの履歴にエラー内容が表示されますので、ご確認ください。

# 最後に
本手順では、[TENKit](https://tenkit.jp/) の応用的な利用として、テンキーから入力された値に基づく条件分岐について説明しました。
これにより、[TENKit](https://tenkit.jp/) を複数の用途で利用することが可能になります。

どのように利用するはかアイデア次第です。面白い使い方を是非発見してください。