今回は👇の記事を参考に、 六曜を取得するLINEbotを完成させます!
【六曜】気にされる方は多いらしい
スーパーなどの小売店ではお祝いの品や高額品は「大安」に購入される傾向が強く、
仏滅時はお届け指定日でも避ける傾向があるそうです。
従業員のシフト作りにも、大切な要素の一つになるとのこと。
LINEbotでサクッと「六曜」を知ることができたら、急な時など便利ですよね。
参考記事①:Node-REDで六曜お知らせLINEBotを作ってます
参考記事②:運を味方につけたい!!大安や仏滅をLINE Botで知る
参考記事①:【LINE BOT】WebAPIを使用し自動返信BOTを作ってみた
そもそも六曜とは?
「先勝」「友引」「先負」「仏滅」「大安」「赤口」の6つのことで、その日の吉凶を占う指標とされています。 もっと知りたい方はこちら人気の六曜取得APIが使えなくなった
調べてみると上3つの参考記事のLINEbotは、全て使えなくなっていました。
というのも、こちらのAPIが使えなくなっている模様。
別のAPIから挑戦している記事もありましたが、22年5月8日現在、上手く動かない様子。
ということでこちらの記事を参考に、 六曜取得LINEbotを作っていきます!
makeでノーコード作成 (モジュールの中身アリ)
できたものはこちら👇 4桁の数字を打つと、指定日時の六曜を返してくれます。
【使用ツール】
・make
・LINE Developers
・六曜のAPIサイト
こちらの手順を参考に作成。結果完成したmakeのシナリオ図は下記の通り。
難しかったところ
①打ち込んだ4桁の値を「月」と「日」に分割してHTTPに渡す
下記の記事を参考に、Substring
を使って数値を取得。
0~2文字目の手前までを「月」 その後の2文字を「日」として取得 しHTTPへ
コード無しで、直感的に数値や要素を取り出せるmakeすごい。
②JSONパースができず 情報を抜き取れない
Parse Jsonモジュールで"rokuyou"の値を取り出したいが、JSONの中身が下記の通り
日付によって毎回変わるので、上手く取り出せない。
そこで、先ほどのSubstring
を使ってJSON内で"rokuyou"が何文字目かを特定し、
要素を抜き出そうとしたが失敗。日付によっては文字数が変わるので、
〇〇文字目から〇〇文字目、と指定してもずれてしまう。
③力業で六曜の値を取得
試行錯誤の末、indexOf
で「要素検索」、要素の「開始位置」を取得できることを発見。
参考:https://www.integromat.com/en/help/string-functions
indexOf
とSubstring
を組み合わせて、下記の通り六曜の値の取得に成功。
"rokuyou"の開始位置検索から始めるので、それ以前が何文字になっていても取得できる。やった!!
「大安」:やってはいけないことが何もない日
本日2022年5月8日は「大安」で「やってはいけないことが何もない日」とのこと。
今回のやり方は正攻法ではないかもしれませんが、結果「六曜」を取得できたのでOK!!
あきらめずに色々な方法で試してみるって大切ですね💪
大安日ついでに、最近作った意味のない作品も紹介させてください👇
これからも色々楽しんで作っていくのでよかったら見てね(^▽^)