bpeldi2oerkd8の開発日誌

とあるひよっこエンジニアの成長の記録。

Web開発の勉強9- 自作サービス作り2

今回もWeb開発に関する記事です。
前回は自作サービスづくりで側だけ作りました。
developer-bpeldi2oerkd8.hatenablog.com

今回はbotの部分を作りました。

作ったもの

新たにhubotのひな型を作成し、出席登録のbotを作成しました。
今回は決まったフォーマットでメッセージを飛ばすと登録結果が返ってくるようにしました。
f:id:bpeldi2oerkd8:20201027164724p:plain

誤登録を防ぐため、メンションをつけないと反応しないようになっています。

反応する形式は、以下の3つです。

  • 出席(空白いくつでも)(月)/(日)
  • 欠席(空白いくつでも)(月)/(日)
  • 不明(空白いくつでも)(月)/(日)

経過

hubotのひな型をyoで作り、決まった形式ではないと反応しないようにbotJavascriptで実装しました。

個人的にはまったのが、herokuで動くようにするための方法です。
ひな形のままでは、「/usr/bin/env: 'coffee': No such file or directory」というエラーが出てしまい、動きません。

これを解決するためには、binフォルダ直下のhubotとhubot.cmdを以下のように編集します。

#!/bin/sh

set -e

yarn install #--no-bin-linksを削除
export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"

exec node_modules/hubot/bin/hubot --name "lattendance-bot" "$@"
@echo off

rem --no-bin-linksを削除
call yarn install  
SETLOCAL
SET PATH=node_modules\.bin;node_modules\hubot\node_modules\.bin;%PATH%

node_modules\hubot\bin\hubot.cmd --name "lattendance-bot" %*

感想

botはすぐ完成させて次に行く予定だったのですが、heroku上で動かないという問題に悩まされて思ったより時間がかかりました。

今後は、登録のメッセージが飛ばされた後、APIを呼び、出欠情報をデータベース上に登録できるようにしたいと思います。

次回こそ、フォーム・データモデルの実装を行っていきたいと思います。