5
3

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 3 years have passed since last update.

AWS IoTボタンで自分の訃報をツイートする「死んダッシュボタン」を作ってみた

Last updated at Posted at 2019-12-15

死んダッシュボタンとは

自分の身にもしものことが起こった(死んでしまった)とき、自分の訃報をできるだけ早く周囲に知らせたい!
そんなとき、ワンクリックで自分の訃報をTwitterに投稿してくれる便利なボタン!
それが 死んダッシュボタン です。

なぜこんなものを?

友人と話しているとき、自分が死んだときってどうやって周囲に伝わっていくのか?という話題になりました。
親族や親しい友人にはすぐに伝わるでしょうが、たまにしか合わない友人や知人には伝わるまでにタイムラグがあるはずです。
そんな人達と生前たまたま飲み会や遊ぶ予定が入っていた場合は、ドタキャンと思われかねない。
連絡も返さない嫌なヤツになってしまう。
そんな不安から作成を決意しました。

準備

まず、AWS IoT ボタンが必要です。
クリック、ダブルクリック、長押しで色々なことができるデバイスです。
あとはAWSアカウントとTwitterアカウントを用意します。

Twitter APIの登録

自動でツイートを行うには、Twitter APIに登録してAPIキーやアクセストークン等を取得する必要があります。
手順は様々な記事で紹介されているのでそちらに譲ります。

参考: Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ

こんな感じで取得できます。
キーとトークン

AWS Lambda関数の登録

AWSコンソールにログインし、Lambda関数を作成します。
「一から作成」を選んで、以下のように入力します。
今回はNode.jsのバージョン12.xで作成します。
lambda_登録.png

Node.jsのプロジェクトを作成します。


mkdir shin_dash
cd shin_dash
npm init -f
touch index.js
npm install twitter --save

index.jsの内容はこんな感じ。
consumer_key などには、Twitter API登録時に取得したものを設定してください。

index.js
const twitter = require('twitter');

const twitterClient = new twitter({
  consumer_key: CONSUMER_KEY,
  consumer_secret: CONSUMER_SECRET,
  access_token_key: ACCESS_TOKEN_KEY,
  access_token_secret: ACCESS_TOKEN_SECRET
});

exports.handler = (event, context, callback) => {
  const tweet = 'ここにツイート内容';
  twitterClient.post('statuses/update', { status: tweet },
    function(error, tweet, response) {
      if(error) {
        callback(null, 'error!');
      }
      callback(null, 'done!');
  });
};

Lambdaのコンソールに戻り、コードエントリタイプで「ZIPファイルをアップロード」を選択します。
先程のindex.jsとnode_modulesをzipで圧縮し、アップロードして「保存」ボタンを押します。
lambda_upload

次にテストイベントを作成し、実際にツイートできるか試してみましょう。
右上の「テスト」ボタンを押して、次のように設定して保存します。
テストイベントを作成
保存後は右上の「テスト」ボタンを押して、実際にツイートされれば成功です!

AWS IoT 1-Clickの設定

AWS IoT 1-Clickの画面を開きます。
まずはデバイスの登録を行いましょう。
わかりやすく解説されている記事がありましたので。そちらを参考に。

デバイスの登録が完了すると、管理 -> デバイスのページから登録したデバイスを確認できます。
device.png

次に、オンボード -> プロジェクトの作成 から、プロジェクトを作成していきます。
プロジェクト情報の指定

プロジェクトのプレイスメントのテンプレートの定義はこんな感じです。
下の「プレイスメントの属性」は空欄にしました。
これでプロジェクトは作成完了です!
プロジェクトのプレイスメントのテンプレートの定義

次に、「プレイスメントの作成」を行います。
テンプレ作成.png

プレイスメント名はとりあえずhomeとしました。
「このテンプレートのボタンデバイスを選択する」を押し、先程登録したデバイスを選択します。
プレイスメントの作成

以上で設定完了です!
AWS IoT ボタン改め、死んダッシュボタンをクリックすると、自分の訃報がツイートされます!
(まだ生きているので、テスト投稿だということも追記してます)
twitter.png
今年の年末は実家に帰省するので、このボタンを実家に置いて行こうと思います。
これで心置きなく年末年始も飲み会の予定を入れられますね!

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?