先日の記事でクソプロダクトを作った話をした。
で、そういえばこのボタンって「1回押し」「2回押し」「長押し」を取得できるんじゃなかったっけ?と思い立ったので押し方によってツイート内容を変えてみる事にした。
Lambdaが実行されるときに、イベントのトリガーについての情報がexports.handlerの第一引数に贈られてくる。
まずは、そこにどんな内容が入っているのか確認してみることに。
console.log(event);
Lambdaのconsole.logで出した内容は、AWS CloudWatchで確認できる。
試しに長押ししてみたところ、内容はこんな感じだった。
{ deviceInfo: { deviceId: '××××', type: 'button', remainingLife: 88.25, attributes: { projectRegion: 'us-west-2', projectName: 'pilkul_delicious', placementName: 'home', deviceTemplateName: 'tweet' } }, deviceEvent: { buttonClicked: { clickType: 'LONG', reportedTime: '2018-07-12T04:31:16.874Z' } }, placementInfo: { projectName: 'pilkul_delicious', placementName: 'home', attributes: {}, devices: { tweet: '××××' } } }
××××はデバイスの識別情報なので割愛。
これにより、どうやらボタンの押し方についてはevent.deviceEvent.buttonClicked.clickType
に格納されているようだ。
1回押しがSINGLE、2回押しがDOUBLE、長押しだとLONGになるようだ。
ついでに、ボタンの寿命、いわゆる残りライフもevent.deviceInfo.remainingLife
で取得できる事が分かったので、面白そうだからこれもツイート内容に取り入れる。
そんなわけで、ツイート内容を設定する処理をこんな感じに修正した。
let date = new Date(); let dateString = moment(date).format('YYYY/MM/DD HH:mm:ss'); let exp = (event.deviceEvent.buttonClicked.clickType == 'LONG') ? 'たくさん' : ''; let life = `残りライフ:${event.deviceInfo.remainingLife}%`; let tweet = `ピルクルを${exp}飲みました!ピルクルおいしい!(${dateString}) #PilkulDelicious ${life}`;
これで新たなピルクルおいしいライフを!
AWS IoTボタンで、押し方と残りライフを取得してみるへのコメント (0)