素人が2020年までの1ヶ月でLINE BOTに挑戦する毎日note. 【Day 10:技術的な実現可能性チェック part2】
こんにちは!
素人ながら1ヶ月でスケジュール調整BOTの開発に挑戦している"くろ"です。
どんなBOTなのかはDay 2の記事をご確認下さい!
昨日は、技術的な実現可能性チェックpart 1として、
①日程調整依頼のフローチャートを検証していきました。
今日は、②~④の部分の検証をして行きます。
②日程調整の回答
③日程調整の情報変更
④リマインド・通知
はじめていく前に、1点だけ問題が出てきたので、そこに触れます。
昨日の記事の中で、「参加しているグループのメンバー全員のUIDと表示名を取得」という部分を検証した際にこういった記述があったという話をしました。
この機能を使うには認証済みアカウントにならないといけないというものですね。
昨日の時点では、申請して利用できるようにしようと思っていたのですが、3つの理由から、今回は未認証でもできる機能だけで作るようにしようと思います。
1,認証済み申請フォームには、法人情報を入れる所があり、誰でもこのnoteを読めば同じようなBOTが作れるようになるという趣旨からすると、法人化が必須なやり方が合わないなと思ったから。
2,時間的制約の中で、申請が通るかわからない状態で、通る前提で進めることは望ましくない。
3,この部分を辞めることでUXは下がる可能性はあるが、考え方によっては機能を減らすことにもなるので、スリム化も図れそう。
ということなので、その前提で一度フローチャートを書き直します。
伴って機能一覧も整理して書き直します。
機能グループIDの所結構時間使ったんですが、、、悲しい。
書き直したフローチャートと機能一覧がこちらです。
【大きな変更点】
メンバーを日程調整作成時に選ばなくなったので、回答完了通知ができなくなりました。
また、まだ回答していないメンバーを指定しての追いかけもできなくなりましたが、代わりにメンバーが回答するたびに「〇〇さんが回答しました。現在O人回答済み。残りO日です」というメッセージをBOTが話すようにして、幹事は何人回答したかがぱっと見てわかるようにします。
【機能一覧】
【フローチャート】
さて、それでは今日の本題に入っていきます。
②日程調整の回答部分の検証
・ユニークな日程調整URLから回答ページを表示する所
検証すべきはこの2点かなと思います。
1,ユニークURLでどの日程調整にアクセスしたのかを判別する
これ私が広告、特にデジタルの人間なので、パラメータで引き回せば物理的にはできることは間違いないと思うのですが、具体的なやり方はさっぱりなので、その辺をちょっと調べます。
URLパラメータとは、サーバで動いている情報を送るために、「?」(クエスチョンマーク)や「&」(アンパサド)などURLに付け加える変数のことをいいます。
【URLパラメータの基本的な作り方】
1.「?」(クエスチョンマーク)から始める
URLパラメータは必ず「?」から始めなければいけません。
2.「パラメータ名=パラメータ値」の組み合わせを設定
例えば、URLパラメータで「名前が佐藤」という情報を付与したい場合はこのように設定します。name=satou 左側にパラメータ名である名前(name)、右側にパラメータ値である佐藤(satou)を配置し、お互いを=で結ぶことでパラメータとなります。
3.複数のパラメータは「&」(アンパサド)でつなぐ
https://digital-marketing.jp/access-analysis/how-to-set-parameters/
やっぱり特定はできそう。
2,その情報をもったまま、LINEログインでユーザーを特定して、そのユーザー情報を該当の日程調整のDBへメンバーとして登録する
https://qiita.com/kakakaori830/items/4d54d012ff4ebf10c173
https://re-engines.com
https://pierre3.hatenablog.com
バッチリこれだという記載がなかったのですが、
これを見る限り、LINEログインを発動する時に、LINEログインが終わった後にリダイレクトすべきページをパラメータで指定できるようなので、
先程取得したパラメータから日程調整IDを特定して、そのIDに該当する日程調整回答ページをLINEログインを発動する時のリダイレクトURLに設定すれば戻ってこれそうです。
パラメータの引き回しはjavascriptで出来るので、大丈夫そうですね。
・Googleカレンダーからデータを取ってくる所
ここが肝なのですが、重そう。。てかこれできなかったら終わりやん、、、
私は反面教師としていただいて、皆さんが作る時は重要なものから先に確認しましょう。
自分のGoogleカレンダーを使う場合のものが結構出てきますね。。。
Googleカレンダーの公式リファレンスと上記のブログを見る限り、自分のGoogleカレンダーで先に認証作業をしておけば、Calendar APIのEvents: getっていうやつでカレンダーに入っている予定は取ってこれそうです。
なので、Twitterとかで良くあるこのサービスにGoogleカレンダーを制御させていいですか?的な認証をうまくやれれば、取得はできそう。
問題はその認証ですが、
このOAuth認証を使えばできそうです。よかった。
書き込みも権限を変えれば出来るようです。(その内日程調整が確定したら勝手にGoogleカレンダーに書き込んでくれるようにもできそう。)
今日はここまでとさせて頂きます。
明日は検証の続きをしつつ、次のステップに進みたいと思います。
いつも読了ありがとうございます。
この記事が参加している募集
よろしければサポートお願いします! 頂いたサポートはクリエイター活動に活用させて頂きます。