見出し画像

専属秘書を作ろう! - #20 タスクを登録する② - フォームに対応する

前回タスクを登録するためのフォームを作成しました。

  • LIFF アプリに "タスク登録フォーム" を登録する

  • Firebase を使用して "タスク登録フォーム" を作成する

ということは大事なことですので、覚えておいてくださいね。

今回はこの "タスク登録フォーム" に対応していきましょう。

では、さっそく Go! Go!

⬇️ 過去の note をまだご覧になっていない方はこちら ⬇️



受信データに対応する

送信情報を確認する

以下の情報を送信してみます。

"登録する" ボタンをタップすると・・・

ちゃんと送れているようです。

さて、スプレッドシートの方でも確認してみましょう。

ちゃんと受信できていますね。
このメッセージに対して処理を追加していきましょう。

受信データをリスト化する

ちゃんとデータが受信できていることが確認できましたので、実際に受信したデータに対応していきましょう。

受信したメッセージは以下です。

{
  "destination":"U7b74f9ba63d6d056e55577xxxxxx",
  "events":[{
    "type":"message",
    "message":{
      "type":"text",
      "id":"5031923121271xxxx",
      "quoteToken":"6KJOlY3xzuPNK1eyXMoEjxxxxxx",
      "text":"tr-title##サンプルタスク##tr-date##2024-04-12##tr-detail##タスクを完了する##"
    },
    "webhookEventId":"01HV44MHMQDNPY2M85Zxxxxxx",
    "deliveryContext":{
      "isRedelivery":false
    },
    "timestamp":1712757294236,
    "source":{
      "type":"user",
      "userId":"U922fa85f2c3047418d5xxxxxxx"
    },
    "replyToken":"d794261b7a8e4ae9a3eb818axxxxxx",
    "mode":"active"
  }]
}

ここで受信した message.text をリスト化します。

{
  let list={};
  let listPos=[0];
  let pos = text.indexOf(KINDMESSAGE_KEYWORD);

  while(pos!==-1){
    listPos.push(pos);
    listPos.push(pos+KINDMESSAGE_KEYWORD.length);
    pos = text.indexOf(KINDMESSAGE_KEYWORD,pos+1);
  }

  listPos.push(text.length-1);

  for( let i=0; i<listPos.length; i+=4 ){
    if(listPos[i]<listPos[i+1]){
      const name = text.slice(listPos[i],listPos[i+1]);
      const str = text.slice(listPos[i+2],listPos[i+3]);
      list[name] = str;
    }
  }

  return list;
}

リスト化した結果が以下です。

{
  tr-title : サンプルタスク
  tr-date : 2024-04-12
  tr-detail : タスクを完了する
}

タスクに登録する

先ほどリスト化したデータを使って、タスクに登録します。

  const listTask = Tasks.Tasklists.list();
  const insertId = listTask.items[0].id;
  const task = {
    "title": list[TASK_REGIST_TITLE],
    "notes": list[TASK_REGIST_DETAIL],
    "due": (list[TASK_REGIST_DATE]+"T00:00:00.000Z")
  };

  const newTask = Tasks.Tasks.insert(task,insertId);

タスク登録するには、どのタスクリストに入れるかを決めなければならないので登録するタスクリストの ID が必要です。

そのため、ここでは、最初に取得したタスクリストに登録するようにしています。

最初に取得したタスクリスト=デフォルトのタスクリスト、ですので、特に問題はありませんね(たぶん😅)。

もし、特定のタスクリストに登録したい場合は、該当するタスクリストの ID を入れてくださいね。

それでは、登録されたデータを Googleカレンダーで見てみましょう。

Googleカレンダー上にちゃんと表示されていますので、問題ありませんね👍

動作確認

では、実際に起動から登録するところまで流れで見てみましょう。

リッチメニューをタップ

LIFFアプリ (タスク登録フォーム) が起動するので、必要な情報を入力。

入力データが、メッセージとして送られる。

Googleカレンダーにタスクが登録される。

このような流れで、タスクが登録されます。

今回は、タスクリストを指定するようには作っていませんので、デフォルトタスクリスト (=Googleアカウントのデフォルトタスクリスト) に登録されます。

この点は覚えておいてくださいね。

まとめ

今回は、"タスク登録" を行いました。
LINE で手軽にタスク登録ができるのは楽で良いですね。

みどりこちゃんがどんどん仕事を覚えてくれています。
有能な秘書に育ってきましたね~。

なんだか子供のころに「プリンセスメーカー」にはまっていたのを思い出しました・・・。

みなさんは「プリンセスメーカー」って知ってますか??

1991年5月に発売された、プリンセスを一流の大人の女性に育てていくという育成型シミュレーションゲームです。

※なぜか、プリンセスなのに、育てていくといろんな職業になります😎

当時はそのようなジャンルがなかったので、発売されたときは衝撃だったことを覚えています。

そういえば、最初は、PC-9801版でしたね・・・。
分かる人だけ懐かしんでください😅

※Mr.Green は結構なおじさんなので、大学では 8インチフロッピーディスクなる巨大なフロッピーディスクも使っていました。
パンチカードを使ったプログラミングはさすがに経験してませんが😅

さて、余談はさておき、
最後に、"動きも見たい!" というお声もあると思いましたので、動画も置いておきます。
ぜひご覧ください。

もしわからないことがありましたら、お気軽に LINE公式アカウント でご質問ください。

今回のご提供ファイルのキーワードは【専属秘書みどりこV14】です。

LINE公式アカウントにご登録の上、キーワードを送信してくださいね。

⬇️LINE公式アカウントに登録してご連絡ください⬇️

もし「サポートしたい!」という方がいらっしゃいましたら、ぜひぜひサポートをお願いいたします! 開発費や外注費などクリエイター活動の一部として使用させて頂きます✨