Help us understand the problem. What is going on with this article?

TENKitとGoogle Apps Scriptの連携(条件分岐編)

本記事は、TENKit の応用的な利用について説明いたします。
事前に基礎編「 TENKitとGoogleスプレッドシートの連携(簡単記録編)」をご確認いただきますようお願いします。

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

ここでは、TENKit の応用的な利用として、テンキーから入力された値に基づき、条件分岐して別の異なる処理を行う方法について説明します。
具体的には、テンキーからの入力に「*」が含まれている場合と含まれていない場合とで、それぞれ異なるシートに値を記録する方法について記載します。
スクリーンショット 2019-09-11 11.46.52.png
これにより、テンキーからの入力を工夫することによって、1つのTENKit を複数の用途に利用することが可能になります。

設定前の準備

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

1. 基礎編をマスター

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

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

Googleスレプッドシート にアクセスし、新しいスプレッドシートを作成して、名前を「TENKit分岐」として保存します。
スクリーンショット 2019-09-11 14.26.00.png

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

作成したGoogleスプレッドシート「TENKit分岐」の下部のシート部分で、シート名を「シート1」から「メイン」に変更します。
スクリーンショット 2019-09-11 14.34.10.png

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

続いて、横の「+」ボタンを押し、シートを追加します。
追加したシート名を「サブ」に変更してください。
スクリーンショット 2019-09-11 14.35.36.png

連携の設定

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

コードの作成

上部の「ツール」メニューより「スクリプトエディタ」を選択し、Google Apps Scriptの編集画面を開きます。
スプレッドシートと同じく、名前(プロジェクト名)を「TENKit分岐」に設定します。
スクリーンショット 2019-09-11 14.41.18.png
元のコードを全て削除し、「コード.gs」に下記のコードを記載します。

// 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 を押してコードの承認手続きを行ってください。
「このアプリは確認されていません」というアラートが表示された場合は、左下の「詳細」をクリックし、次に「TENKit分岐(安全でないページ)に移動」をクリックして承認手続きを実行してください。

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

コードの公開

コードを公開し、Webhook用のURLを作成します。
Google Apps Scriptの編集画面の「公開」メニューより「ウェブアプリケーションとして導入」を選択します。
スクリーンショット 2019-09-12 17.42.53.png
以下の画面が表示されるので、「アプリケーションにアクセスできるユーザー」に「全員(匿名ユーザー含む)」を選択して「導入」ボタンを押してください。
スクリーンショット 2019-09-10 17.25.29.png
その後、以下の画面が表示されれば成功です。
スクリーンショット 2019-09-10 17.26.19.png
最後に「ウェブアプリケーションのURL」を以下専用の設定ページで登録します。
スクリーンショット 2019-09-10 17.45.55.png

テンキーから入力

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

・「」が含まれていない場合
スクリーンショット 2019-09-11 14.47.45.png
・「
」が含まれている場合
スクリーンショット 2019-09-11 14.48.10.png
ここで何らかのエラーが発生した際は、スマホアプリの履歴にエラー内容が表示されますので、ご確認ください。

最後に

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

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

tetotetote
てとてとて合同会社です。よろしくお願いします。
http://teto.tech/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした