Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9350

obniz「今から帰るね!」とLINEでメッセージ送ると、曲が流れる仕組み! 

$
0
0
obniz「今から帰るね!」とLINEでメッセージ送ると、曲が流れる仕組み!  仕事が終わって携帯を見ると、いつも奥さんから「何時に帰ってくる?」「何時の電車に乗る?」といったLINEメッセージが来ている。これが気になる理由は、夕食の準備やお風呂を沸かす準備があるからだ! 「今から帰るね!」とLINEメッセージを送ると自宅のobnizに連携させたスピーカーから、音楽が流れるのと、時間の経過とともに。LEDランプの色が変化する仕組みを制作したいと思いました。 obniz「今から帰るね!」とLINEでメッセージ送ると、曲が流れる仕組み!  作成した仕組み(未完成) LINEBotとobniz(スピーカーとLEDを連携させた仕組み) 開発環境 ・LINE公式アカウント開設 ・LINE Developersアカウント登録 ・Visual Studio Code ・LINE Bot ・obniz 共通テンプレート テンプレートをもとに作成しました! サンプルコード (クリックで表示) 'use strict'; // ######################################## // 初期設定など // ######################################## // パッケージを使用します const express = require('express'); const line = require('@line/bot-sdk'); const axios = require('axios'); // ローカル(自分のPC)でサーバーを公開するときのポート番号です const PORT = process.env.PORT || 3000; // Messaging APIで利用するクレデンシャル(秘匿情報)です。 const config = { channelSecret: '作成したBotのチャネルシークレット', channelAccessToken: '作成したBotのチャネルアクセストークン' }; // ########## ▼▼▼ サンプル関数 ▼▼▼ ########## (この行をサンプル関数丸ごと全部と置き換えてね) // ########## ▲▲▲ サンプル関数 ▲▲▲ ########## // ######################################## // LINEサーバーからのWebhookデータを処理する部分 // ######################################## // LINE SDKを初期化します const client = new line.Client(config); // LINEサーバーからWebhookがあると「サーバー部分」から以下の "handleEvent" という関数が呼び出されます async function handleEvent(event) { // 受信したWebhookが「テキストメッセージ以外」であればnullを返すことで無視します if (event.type !== 'message' || event.message.type !== 'text') { return Promise.resolve(null); } // サンプル関数を実行します return sampleFunction(event); } // ######################################## // Expressによるサーバー部分 // ######################################## // expressを初期化します const app = express(); // HTTP POSTによって '/webhook' のパスにアクセスがあったら、POSTされた内容に応じて様々な処理をします app.post('/webhook', line.middleware(config), (req, res) => { // 検証ボタンをクリックしたときに飛んできたWebhookを受信したときのみ以下のif文内を実行 if (req.body.events.length === 0) { res.send('Hello LINE BOT! (HTTP POST)'); // LINEサーバーに返答します(なくてもよい) console.log('検証イベントを受信しました!'); // ターミナルに表示します return; // これより下は実行されません } else { // 通常のメッセージなど … Webhookの中身を確認用にターミナルに表示します console.log('受信しました:', req.body.events); } // あらかじめ宣言しておいた "handleEvent" 関数にWebhookの中身を渡して処理してもらい、 // 関数から戻ってきたデータをそのままLINEサーバーに「レスポンス」として返します Promise.all(req.body.events.map(handleEvent)).then((result) => res.json(result)); }); // 最初に決めたポート番号でサーバーをPC内だけに公開します // (環境によってはローカルネットワーク内にも公開されます) app.listen(PORT); console.log(`ポート${PORT}番でExpressサーバーを実行中です…`);

Viewing all articles
Browse latest Browse all 9350

Trending Articles