21:34:08エンターテイメントnemlogプログラマーズ同好会Tweet今日はかいわれ大根の日です。かいわれ大根の辛味は苦手です昨日は失礼しました。本当であれば連休最終日の記事を投稿出来る予定だったんですがその前日に購入した無線LANカードをPCがついた状態で抜き差ししてしまい、無事お亡くなりになりました。それがだめだと気づいたのが今朝だったのできのうは帰ってきてから一日中直そうと必死だったので何もできませんでした。しかたないので今日の投稿が連休最終日の記録となります。サンプルコード、動かず。昨日はひとまず定期的に通知をしてくれるPythonファイルの作成に取り掛かりましたこちらですだいたい最初にヒットするテックアカデミーさんの記事ですね。思うように動いてくれないので直接linebotさんに記述してみることにしました。これは現状、知識がなくてpythonのどのエラーなのかがわからないからです。出力方法が間違っているのか、コードが間違っているのか。サンプルコードの写しなので出力方法のミスそう→lineで試そう!ということでもあるのですが。確認するためには一番手慣れているものでやったほうがミスの種類に早く気付けるかな?という判断です。そこで一番最初のオウム返しbotさんに被検体になっていただくことにしました。エラーを吐き続けます。通知をしたいので、オウム返しからどんな文にも定型文を返すアプリに変更しました。このまま通知させようとするとユーザーの入力した情報がないのでエラーになると判断したんですね。いうかよく考えたら過去のメッセージの情報って生きてないんですかね?どんなBOTと会話していても毎回リセットされてそうですよね。配慮したからエラーは起きないと思ったら起きました。defined何じゃそりゃ。handlerを使うためのimport文が消えてるかな?と関連箇所を見ますが全く問題なしそうか私レベルだと見落としちゃう1文字違いとかか。oがiになっちゃってるみたいな。思ってほぼサンプルコードなので参考にしたサイトを一部コピペしても動かず。30分ほど悩んでいましたがもうやだ!!!!と諦め昨日のコミットした部分をみて差分を確認していましたうんうん、ここは無駄だったので消したコミットだ。ここm......?なぜかapiキーを格納した変数が消されていました。これなかったら動かないの当たり前じゃない。?さすがに分かるよ?とおそらくコミットを見るに昨日何かと一緒に消してしまったようです。一件落着でしたが、正直素人にはこのエラー文でここに原因があるとは思えません、、、1時間かからずに解消できて本当に良かった。いつもと違うアプローチで考えられたのは良かったです😋さあ気を取り直して本題へGo!一昨日も書きましたが、今日またIKEAに行き直しました。駐車場入るまでめちゃくちゃ混んでたけどお目当てのものが決まっていたので店内は30分程度で終了。組み立てにしっかり時間がかかったので今日はもう時間が5時間程度しかないんだ。sample_time.pyとしたら指定した時間に思い通りの記述を反映してくれました。最初に動いてくれなかったのは実行方法が異なったからだったんですね。(多分)残るはLINEBOTの設定となるとあとはLINEBot側の設定です。今のままじゃ手打ちで実行してるに過ぎないので未だ自分で調べた方が速いです。色んなサイトを遍歴しているのですがどこもかしこも少し複雑そうなので忌避していました。簡単なコードはねぇのかと。悪い子を探すなまはげのように。実際、新しい情報×長いコードは私の立場にとっていいことがありません。詳細に説明してくれるひとが少ないからです。あとはその牙城を切り崩すことのみと判明したのでちいさな槍を持って突撃しに行こうと思います。いうか余談なんですけど毎回herokuにデプロイして自分のスマホで確認するの大変なんですがシミュレータみたいなのないんですかね?あってもおかしくないと思うのです。【速報】ついに環境変数に勝つ技術の革新は期せずして起こることも多々あるはずです。私にとっては今でした。不意に成功しましたPCに環境変数を直接教えないとローカルでは起動しないのですね先程このサイトを見ていましたこれによると環境変数はローカルに認識されるまでちょっとばかし手数が必要なようです。おかげさまで環境変数に対してのエラーがいっさい無くなった、いや亡くなったということになります。PCに環境変数を教えこんだということは違うアプリでは違うトークン名にしないとイケないということですね。気をつけないとですね。まとめと少しの気づき定型文で、手動で、ユーザーを名指しと制約はたくさんありますがlineから通知を仕掛けることに成功しました。参考にしたのはhttps://qiita.com/kotamatsuoka/items/6f56d0d0a3225160b4d0ここではごく簡単に通知をする方法を教えてくれました。"__main__":main()がないと動かないということ。(最初ここにmain()があるのに気づきませんでした。)一体こいつはなにを請け負っているのでしょうか。定期実行方法(時間指定による定期実行はできるけど今はまだコード自体が手動)多分これだけやればお目当てのものの雛形程度はできるんじゃないかな?ちなみに先の環境変数の下りはこのlineからの通知を仕掛けるときにローカルでファイルを実行する必要があったので必要にかられてできました。準レギュラー化してる環境変数さんですが今回は見切れ程度の出演でした。今は彼に対して強気な態度を取れるかまたさんでした。