いかちゃんのアプデ情報収集とそのデータ扱いと短縮URLとか
結局、テキストファイルに情報を色々入れるのは追加いがってが悪いので、DBにデータを保存収集してアプデの有無をチェックする事にしました。
1時間ごとに情報収集するようにしました。
仕様を色々書き換えました。
いかちゃんのお仕事内容 - icachanbot’s blog
そういえば、Googleの短縮URLサービスがなくなったんですね、知らなかったです。代わりにGoogleのFirebaseが提供しているDynamicLinkとやらを使ってみました。
便利になったもんですねぇ。
このFirebaseはDialogflowの裏側でWEBHookそとして動いてるやつですね。
テストコードしか書いてないんですけどw
最近触ってないので忘れがちですがそっちも色々改良していきたいんですが、思いつくとすぐ別の事をやりはじめちゃうので、いけないですね。
アイディアメモ的な記事を残したら忘れないで良いかもしれません。
いかちゃんのお仕事内容
数日離れただけですっかり忘れてしまうので、メモします。
//30分ごと
/************************************
公式がツイートしたら無条件でリツイートするよ
*************************************/
公式様を労ってあげたい。と、いかちゃんが申しております。
/************************************
新着情報があればtwitterするよ
*************************************/
// イカロス公式サイトから、本日新着イベント(※)があれば取得
※公式のイベント情報 アクセスし、その日更新された情報があれば取得しています。
// 5:00
/*===============================================================
イカロスの時報をtwitterするよ(朝5時)
曜日別に色々ツイートするよ。
===============================================================*/
//「アケロン魔石争奪戦」
'本日は第2日曜日!アケロン魔石争奪戦、時間は21:00 ~ 23:00だよ! #イカロス '
//「エクサラン魔石争奪戦」ついでに図書館
'土曜日だよ~!エクサラン魔石争奪戦、時間21:00 ~ 23:00だよ! ついでに、図書館ボス強い日だよ~! #イカロス ';
//月曜
'月曜だよ~挑戦の塔の報酬受け取お忘れなく~ #イカロス '
etc
このように、特定条件の曜日他、通常の曜日も色々あります。
// 8:00
・いかちゃんのオリジナルつぶやき
DBに溜め込んである独断と偏見に満ちたつぶやきを吐き出します。
// 12:00
・その日のトレンド有名人を絡めたツイートをするよ。
twitterトレンドを解析するサイトを解析して人名取得してツイートします。
// 22:00
・その日のトレンドタグをイカロスと絡めたツイートをするよ。
twitterのトレンドタグを取得(TwistOAuth)し、ツイートします。
その他、雑談とか
・いかちゃんに返信するとランダムで何かしら返すようにしています。
・各時間ごとに、#イカロス を検索してふぁぼするようにしてます。
・フォロー返し、適時するよう設定しています。
icachanbot再始動。
ようやく垢回復しました。
9日ぶりのいかちゃんです。
既に勝手に動いてますねー。
公式様お疲れ様です https://t.co/RtbkPSEtT9
— いかちゃん (@icachanbot) 2019年5月29日
というか・・・どういう条件で動い打てるんだっけ?って、、、もうすっかり脳みそが吹っ飛んでます。
いかちゃんのバックで動くデータをDB化したいですよねー。
今ただのテキストから読んでるだけなんで・・・
またそのうち。
垢凍結6日目まだ回復しませぬ
↓事件から6日経過・・・
icachan.hateblo.jp
ググると当日垢再開できた人も居れば6日目で~とかいう記事も見つけたけど、私は6日を過ぎました。
いつ次のステップに進む準備が整うのかな??^^
気を取り直して・・DialogflowでWebhook。初めてのFirebase。
twitter垢ブロックされたのはそれは垢回復対応を待つ(仕方なく身分証の画像を送信しました・・・)として。
とりあえず、バックグラウンドの開発をすることに。
んで、今回、DialogflowでWebhookを使うのには一番なにが良さそうかなーと思い、色々調べていて、やっぱりDialogflowはGoogle製なのでそれと一番親和性の高い物を使うのが宜しいのでしょうという結論に至り、じゃ、いったいそれはなんぞや?て、なところで、
一応、参考にしたサイトはこちら。
で、この方は、
「GoogleCloudConsoleからCloud functionsを選択し、関数を作成を押下します。」
ってあったので、おーなんか簡単そうだぞーって思い
よくわからないけど・・・言語?APIか。Firebaseっていうんですねー?なにそれー。まぁいいっかーー。
Firebaseのオンラインコンソール、GoogleCloudConsoleなるものを使えるようにしよーということでググググとググったが・・・
GoogleCloudConsole 完全無料じゃないんかーい!! (←期間限定無料)
えー。どうするの。
こりゃローカルに何かしらの環境を作らなきゃいけない系????? ひえー。
やったことないが、せっかくなのでやってみよう・・。
てなことで・・・・
Firebaseって凄いなぁ。Firebaseを使うには、Node.jsのコマンドプロンプトから、Firebaseにログイン、そっからデプロイ。という手順らしい。
Firebase CLI リファレンス | Firebase
まぁ、環境構築とうか、構築とは言わないのかなー。こちらで用意する環境は、Node.js、これひとつで済んだ、というイメージであります。
(実際のコードは、とりあえずテキストエディタでちまちま書いてみる流れ)
コマンドプロンプトとかあんま使わないできた人生。使う必要があれば使うという程度で、便利ソフトウェアでポチポチぬくぬくと生きてきたので、コマンドを叩くというのはなかなか慣れぬですー。。
ただ、コマンドタターン!からの~ログ流れる~!・・Complete!ってのは、見た感じはカッコいいよね!!(そこ
んで、肝心のソースコード。お手本どこ?
この人のも多少書いてはあるけど、これコピペするだけじゃ動かないので、とりあえず、Googleの用意した動くサンプルのソースコードをコピってそれを自分用に書き換えるのがきっと手っ取り早いんだろうと思ったので、そうする事にしました。
実際には、Dialogflow > Fulfillment > Webhook の、Inline Editor をポチっとENABLEDにすると出て来るサンプルコード(index.js)をコピペしました。
で、色々つまづいたんですが、Error:module error 的なやつが出たー。
moduleが足りないのかーい。Firebaseは使う予定のモジュール全部を入れてくれている話ではなかったのか・・・?
解決してくれたリンクを貼り付けておきます。
これ( npm-install-missing)はつまり、途中で気付いたんですがindex.jsと一緒のディレクトリにあるpackage.jsonに記載があるが、モジュールインストールされていないものを察知してインストールしてくれるというものらしい。
index.jsにいくらコード書いてもだめで、Errorで出た問題のモジュールが、まずpackage.jsonちゃんと書いてあるか確認。
書いてなかったら書いて、
(私の場合この3つが足りなかったようだ)
npm-install-missing
タターン!OK~~~。
これでとりえずデプロイできるようになった。
Deploy complete! ヤッタネ!!
んで、デバッグ作業。
デバッグは、どうすれば?? とりあえずログ見ようかーてなことで・・
console.logを・・ この画面にアクセス。
https://console.firebase.google.com/
なんかエラーでてるところあるーなーと見て見て・・
いくと、、、この参考にした人のサンプルコードが違ったんですね。
私が取得したデータ構造と違うぞー。
request.body.result.parameters.boardgame
こちら、正しくはこっちでした。
request.body.queryResult.parameters.boardgame
なんだろ?何かしらバージョンが違ってたのかね?
この方と全く同じ環境であればresultの方だったのかなー。私の環境じゃqueryResultでしたなー。
・・・とか、なんとかなんとかやっているうちに動きました。
ただ、「すごいね!」には、冷たい・・いかちゃん。
用意した質問と用意した回答でしかデモできないところが辛い・・
雑談をする事を想定した回答も私が用意しなきゃならないので。面倒だー。やるのか?やるか??うーーん。。
その点、A3RT(リクルート製)だと、テキトーにそれっぽい返事を返してくれてて、雑談はできそうな模様・・・
そっかー、A3RTだったらもっと雑談できるのに。(今更)
リクルートが一歩リードしている気がする・・。
DialogflowごしにA3RTを呼び出そうか? うーーん。
ほんと、赤ちゃんに言葉を覚えさせる、言葉を用意してあげる。という感じ。なかなか地道な作業だな。
今は、ただのテキストエディタにテキスト殴り書きしただけって感じなので、これを発展させるには、バックで返答用DBを用意、Firebaseで返せるようにして、発言に必要なバイパスをDialogflowで用意してあげれば一気に赤ちゃんBOTから凄い知識豊富BOTになれるんだろうなー。これば巷でやってるQ&AのカスタマーチャットBOT開発なるんだなーなんて。
思ったのでした・・・
それにしても、この1~2日で、ざっと勢いとノリでやったので、パソコン再起動してまっさらな状態で同じ事やろうとしたらもう忘れてるかもしれぬ・・・
ということでブログにメモメモでした・・・・やっとウィンドウの×ボタン押せるよね・・・w
A3RTでPHPからURL叩いて(POST)返答をキャッチしてWeb画面上に出すみたいなチャットサンプルも作ってみたので、それを色々いじってみるかはまた考えたいなーと思いますー。
では。今日のブログはここまで。
イカロス食材リストメモ!
随時追記
いかちゃんの食事メニューを考えようと思いまして。
★おやつ
ハカナスキャンディ
ブラックチョコレート
★製作
焼きおにぎり
コンソメスープ
ポタージュスープ(オアシスの水
ローストミート
チャウダー
シチュー
スペアリブ
ポトフ
聖域秘龍焼盛合わせ
香草焼き
★牧場 食材商人
固い肉
平凡な肉
もちっとした肉
淡白な肉
柔らかい肉
★ハカナス城の酒場隣の商店
エルフのフルーツジュース
青花茶
オレンジジュース
香る牛乳
特性ブロッコリースープ
ローヤルゼリーエキス
涼しい木の樹液
エルフのフルーツケーキ
トナカイのタレ焼き
干し肉
高級肉のステーキ
フィッシュアンドチップス
脂っこいイノシシのレバー料理
よく焼けた馬肉
クエスト
青い花のエキス
★ブラカルの森(神龍騎士団駐屯地)雑貨・食材商人 アディーナ
骨付きの肉
イノシシのバーベキュー
エルフのフルーツケーキ
苦い薬草
ブラカルの森の薬草
エルフのジュース
★パルナの地 葦風の村 食材商人 ロインテ
高級肉のステーキ
フィッシュアンドチップス
香る牛乳
特製ブロッコリースープ
クエスト
美味しい食べ物
りんご
★パルナの地 白銀の渓谷 ラビニコロナ 三日月商
ラム酒
★砂漠(アルセーク村 食材商人 アグネス)
焼いた馬肉
干したうさぎの肉
赤い鳥の手羽先
冷たい樹液
甘酸っぱいフルーツジュース
香ばしいコーヒー
★聖域 エルガーデン 食材商人 コトリ
赤い鳥の手羽先
キツネの香草焼き
香ばしいコーヒー
聖域の天然水