LoginSignup
5

More than 3 years have passed since last update.

posted at

Organization

obnizでAmazon Dashボタン的なのを作る

obnizの新しい「ボタンを押してサーバーレス発動」を使ってみます。
ボタンを押すだけでサーバーでプログラムを実行できるので便利だし可能性が広がりますね!

今回は「押すだけでSlackに投稿する」というのをやってみました。

switch_event.gif

obnizの用意

obnizを電源につないで、Wifiにつないでおきます。参考
QRが出たらもうクラウドに繋がってます。

あとは動かすプログラムの用意と、イベントの設定が必要ですね。
イベントが作れるようにクラウド上にアカウントを作って、obnizを紐付けるところまでやっておきます。

動かすプログラムの用意。

ボタンが押されたらサーバー上で動かすプログラムを書かないといけないです。
Slackの鍵がばれないようにプライベートなプログラムをobnizクラウド上に用意します。

Screen Shot 2018-08-21 at 19.24.02.png

ボタンが押されたときにこのHTMLがサーバー内で開かれて実行されるので、
ここにjQueryを使って、Slackに対してGETメソッドでメッセージを投稿するプログラムを書きます。

<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
</head>
<body>
<script>
  var url = 'https://slack.com/api/chat.postMessage';
  var data = {
    token: '自分のトークン',
    channel: '#general',
    username: 'obniz-bot',
    text: 'You Pressed the switch!!'
  };

  $.ajax({
    type: 'GET',
    url: url,
    data: data,
    success: function (data) {
      if (typeof done === "function"){
        done();
      }
    }
  });
</script>
</body>
</html>

プログラムが書けたら試しに、サイト上で「保存&実行」を押せばちゃんとSlackに通知が!

もちろんSlackの方でWebhook用のトークンを作って、「自分のトークン」のところに書く必要があります。

イベントの設定

あとは、obnizのボタンを押したときにこれが動くようにイベントを作ります。
クラウドのマイページで「イベントの作成」からさっき作ったプログラムを選んで、
きっかけを「ハードウェアイベント」で、自分のobnizの番号と、イベントで「Switch Pressed」を選びます。

Screen Shot 2018-08-21 at 19.28.56.png

これで作成したら準備完了!
ボタンを押したらSlackに来るはず!

動かす!

やってみましょう。
obnizにQRが出ている状態で左上のスイッチを押したら押すたびにSlackに文字が!
ただ文字が出るだけで単純ですけど楽しいですね!インターネットを感じます。

switch_event.gif

これ、サーバー上でjavascriptで動かしてますから、天気を拾ってきてobnizの画面に出したりとかもできそうですね。

AWS Lambdaを用意しなくてもobnizのサイトだけで完結できるのが楽でいいです。

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
What you can do with signing up
5