Skip to content

agileware-jp/sasami

Repository files navigation

目次

環境情報

  • Node.js: v22.14.0
  • npm: v10.9.2
  • PostgreSQL: v17

導入方法

1. キンコンAPIのトークン取得

参考1-1 を参考に、キンコンAPIのAPIキーを取得して控えてください。後の環境変数の設定に使います。

具体的には、キンコンのサイトの右上の歯車マークを押し、「外部連携」ボタン > 「APIトークン」を押し、トークンを発行します。
注意:「設定」項目から「交通費登録」の権限を付与したトークンにしてください。

参考

2. Slackアプリの作成

Slackのアプリケーションを作成し、必要な権限を付与します。また、本アプリケーションではWebSocketを用いた通信方式を使うため、ソケットモード(参考2-2)を用います。

2-1. 権限設定 & 導入

Oauth設定でBotに付与する権限を設定し、ワークスペースに導入します。 Slackのアプリケーション設定画面から「OAuth & Permissions」 > 「Scopes」で必要な権限設置を行い、その後動作させる対象のワークスペースにInstallしてください。OauthトークンとSigning Secret(参考2-1)、SLACK_APP_TOKEN(参考2-2)は後の環境変数に用いるため、控えてください。

今回必要な権限は次のとおりです。

  • channels:history
  • chat:write
  • chat:write.public
  • commands
  • users.profile:read

2-2. スラッシュコマンドの登録

Slack Appの設定画面の左部分から、「Slash Commands」を選択し、Nameを「/sasami」としたコマンドを追加してください。

参考

3. Nodeモジュールのインストール

npm install

4. 環境変数の追加

開発用の環境では、.envファイルに次の環境変数を指定してください。本番環境ではデプロイ先の環境変数を直接設定してください。

それぞれの環境変数の意味は次のとおりです。

  • SLACK_SIGNING_SECRET ... SlackアプリのSigning Secret(参考2-1
  • SLACK_BOT_TOKEN ... SlackアプリのOauthトークン(参考2-1)。xoxb-から始まる。
  • SLACK_APP_TOKEN ... SlackアプリのSocket ModeのためのApp Levelトークン(参考2-2)。xapp-から始まる。
  • KINCONE_TOKEN ... キンコンAPIのトークン(参考1-1)。
  • DATABASE_URL...データベースのURL。
  • NODE_ENV ... productionまたはdevelopment。この環境変数の値がproductionのときに限り、Slackのコマンドが本番環境のものとなる。

[設定例]

SLACK_SIGNING_SECRET=xxxxx
SLACK_BOT_TOKEN=xoxb-yyyyy
SLACK_APP_TOKEN=xapp-zzzzz
KINCONE_TOKEN=wwwww
DATABASE_URL="postgresql://aaaaa@bbbbb:ccccc/ddddd"
NODE_ENV=development

5. 起動(開発環境)

npm start

Slack側の操作手順

  1. チャンネルにてコマンド「/kincone」を打つ。
  2. フォームに必要事項を入力し、送信。
  3. 送信後、Botから入力内容と、キンコンの確認画面へのリンクが送信されるため、必要に応じて確認する。

About

Slackからキンコンに交通費を入力するSlackボットアプリ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •