3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS IoT EnterpriseでJobcanの打刻ができる出勤ボタンをつくった

Posted at

背景

  • AWS LambdaがRubyの対応したので、自分で作成して使ってみたかった
  • Amazonがダッシュボタン事業から撤退してしまうので、その弔いとして
  • ジョブカンで打刻するのが億劫だなと感じていた

構成

構成としては以下の図のような構成になっています。

slack-jobcan.002.png

参考にしたのは、このブログのリンクでpythomで自分が実現したいことを達成していたので、90%くらいはここから真似してきました。

物理出勤ボタンを作った

こちらのブログだとpythonで書かれていたのですが、今回使いたかったのはRubyなので、Rubyで書きました。

手順

  • Amazon IoT Enterprise をAmazonで購入
    • 2500円します。
    • 実験としてはいいけど、高いな。。。

AWS IoT エンタープライズボタン – IoT をシンプルに。

  • Amazon IoT Enterpriseをセットアップ
    • アプリをダウンロード
    • バーコードを読み込んで、デバイスを登録する
    • デバイスとWifiを繋げる
  • Amazon IoTをセットアップ
    • プロジェクトを作成
    • デバイステンプレートを作成
  • Labda のセットアップ
    • 関数を作成
  • SlackのAPI token とチャンネルのIDの獲得
    • ここから獲得
  • コードの記述
    • slack-ruby-clientというgemを使う
    • 以下のようなコードを書きます
require 'slack-ruby-client'

def hello(event:, context:)
  Slack.configure do |config|
    config.token = ENV['SLACK_API_TOKEN']
  end
  client = Slack::Web::Client.new
  client.chat_command(channel: ENV['SLACK_CHANNEL'], command:'/jobcan_touch')
end
  • 詳しいコードは以下のGithubから確認してください。

https://github.com/knsg16/slack-jobcan

  • コードをAWS Lambdaにアップする
    • zip形式のフォルダを作成
    • 当該ファイルをLambdaにアップする
    • Lambdaにテストイベントを作成して、テスト
  • 完成
    • お疲れ様でした!!

トラブルシューティング

  • ステルスの社内WIFIにAmazon IoT Enterpriseを接続できない。。。
  • rubyのversionを2.5.0にきっちり揃えないといけなかった。。。
  • 普通にwebhookでは、コマンドをAPIで叩くことができなかった。かつ、非推奨のレガシートークンを使用しなければならなかった。。。
  • lamdaにアップするためにファイルをzipにする時のファイル構成
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?