- Node.js: v22.14.0
- npm: v10.9.2
- PostgreSQL: v17
参考1-1 を参考に、キンコンAPIのAPIキーを取得して控えてください。後の環境変数の設定に使います。
具体的には、キンコンのサイトの右上の歯車マークを押し、「外部連携」ボタン > 「APIトークン」を押し、トークンを発行します。
注意:「設定」項目から「交通費登録」の権限を付与したトークンにしてください。
- 1-1(キンコンのAPI設定): https://support.kincone.com/hc/ja/articles/4411890251801-%E3%82%AD%E3%83%B3%E3%82%B3%E3%83%B3-API%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3
Slackのアプリケーションを作成し、必要な権限を付与します。また、本アプリケーションではWebSocketを用いた通信方式を使うため、ソケットモード(参考2-2)を用います。
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
Slack Appの設定画面の左部分から、「Slash Commands」を選択し、Nameを「/sasami
」としたコマンドを追加してください。
- 2-1(Slackのアプリケーション作成): https://qiita.com/tomomi_slack/items/21fedcc6ce07aa44a670
- 2-2(ソケットモードについて): https://qiita.com/seratch/items/1a460c08c3e245b56441
npm install
開発用の環境では、.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
npm start
- チャンネルにてコマンド「
/kincone
」を打つ。 - フォームに必要事項を入力し、送信。
- 送信後、Botから入力内容と、キンコンの確認画面へのリンクが送信されるため、必要に応じて確認する。