ハマったところを書き残しておく。超小さなミス含む。
Firebaseの認証の有効化
Firebaseでメールアドレス+パスワードの認証が可能。
Email, passwordを入れて呼び出すだけなので超簡単。
// 登録 fb.auth().createUserWithEmailAndPassword(email, password); // サインイン fb.auth().signInWithEmailAndPassword(email, password);
という感じで、コードは簡単だったのに、サインアップも認証もできなくて一瞬ハマったんだけど、ただコンソール画面からAuthenticationのログイン方法でメール/パスワードを有効化していなかっただけだった。。。
Firebase Hosting
この辺りを参考にして、特に問題なくできた。
ただ、publicフォルダにhtml+jsファイルを入れ直す必要があったことくらいかな。
https://firebase.google.com/docs/hosting/?hl=ja
FirebaseでWebサイトを無料でサクッと公開してみる - Qiita
Twitterクライアントライブラリ
使ったライブラリは、npm trendsなど見てtwitにした。
https://github.com/ttezel/twit:twit
Twitter reply
発言させるまではすんなりいったので、発言させたセンテンスのツイートに返事をしたら訳を返すようにしようと思ったんだけど、このreplyでどハマりした。
というのも、てっきりreplyを指定して取ることができると思い込んでいたのだけれど、そんなパスはなく結局以下でストリームを取得した。
this.textStream = this.T.stream("statuses/filter", {track: ["@screen_name"]});
今度コールバックでTwitter Idからreplyされたツイートを取得しようとするんだけど、取得できない。
Tweetのidに、idとid_strが別に用意されていて、何も気にせずidを指定していたら、idとid_strが別の値だった。これに気づかずまたハマった。id_strにしたら動いた。
10個くらい同じツイートができない仕様もめんどいけど、センテンス増やせば大丈夫なので放置。
あと、streamの止め方がよくわからなかった。
stream.start()とstop()が用意されてるんだけど、stream.onですでに取得し始めるし、stopを呼んでも止まらなかった。
まあ止める必要がないしまあいっかと思ったので、これ以上調べてない。
Herokuのデプロイ
さてbot作ったしHerokuで動かそうと思ったが、動かない。
logを見てみると、
heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
これで若干ハマったけど、以下を参考にしてworkerで動かすようにしたら解決した。
Heroku で ポート指定しないタイプの Node.js アプリをデプロイする時につまづいたこと - Qiita
以上。
あと他に思い出したら追記しよう。