ハッカソンメモ!
事例集
hexabase API
ヘキサベースです。
BaaSと呼ばれるもの
blastengine API
メール関係のAPI
メールを送信する。
LINE WORKS
小規模チームで使える
洗い出しで皆さんがどんどん出してるのがすごい
とりあえず、手元でJpegカメラを使うことはできたけど、はてさて
画像から何かを抽出するAPIないかな?
みんなのアイデアおもしろい!
とりあえず、つくりたい方向性はできた!技術的にできるかはわからない!
よしださん、相変わらずおもしろい
うっかり秘書、、、かわいい
機能としては、LINEに通知する機能と、PCの音声にて通知する機能をつくる。
PC音声はnode.jsの音声出力するのをとりあえず使う。
参考記事
Jpegカメラを使うときに参考にした記事
普通のobnizのサンプルだとなぜかうまく動作しなかった、、、、ボーレートが早いほうが良いのかもしれない。
node.jsで、中に保存するときは以下を参考にした。
ちなみに、fsはrequire
する必要がある。
obniz.io6.output(true);
obniz.io9.output(false);
var cam = obniz.wired("JpegSerialCam", {vcc:0, cam_tx:1, cam_rx:2, gnd:3});
await cam.startWait({baud: 38400});
const jpegData = await cam.takeWait();
fs.writeFile("output.jpg", Buffer.from(cam.arrayToBase64(jpegData), "base64") , (err) => {
if (err) console.log(err);
});
PC側はmp3が再生されるようにした。
なんと、LINEbotで画像を送るときは、URLを公開していないとダメなのか、、、どうすりゃええの?
なんかGoogleDriveに保存してから、画像取ってこようと考えたけど、いまいちわからんので、いったん飛ばして、LINEを作って画像を送信するところまで作ろう
LINEbotでエコーバックまでは完成。
これ作るの、いつもちょっとどきどきする笑
ここ自動化できたら良いのにね。
googleDriveのデータをLINEで送ることできた。なんかURLをいい感じに変更しないといけないっぽいっす!
コメントにあるURLに、IDを入れたらURL画像になる。
gyazo使ってみた!けど、保存は簡単にできたけど、LINEで送るとちょっと違う感じになるね。URLとして送るのもありかもしれぬ
音声とLINE Botの組み合わせはできた。
'use strict';
const player = require('play-sound')();
const express = require('express');
const line = require('@line/bot-sdk');
const PORT = process.env.PORT || 3000;
// Messaging APIを利用するための鍵を設定します。ここは自分のものに書き換えてください。
const config = {
channelSecret: '**********,
channelAccessToken: '************************'
};
const client = new line.Client(config);
// リプライメッセージ返答処理
// ユーザーからメッセージがあったときに呼び出されます
async function handleEvent(event) {
if (event.type !== 'message' || event.message.type !== 'text') {
return Promise.resolve(null);
}
// 最後にメッセージに入れます。
let resMessage = [];
resMessage.push({
type: 'text',
text: 'https://gyazo.com/32478dd423a4834abacbe9cc9b311d8e'
// originalContentUrl: 'https://drive.google.com/uc?id=1fLF_1vECTmMSgzhuIYFwfosuoB3NMmgV',
// previewImageUrl: 'https://drive.google.com/uc?id=1fLF_1vECTmMSgzhuIYFwfosuoB3NMmgV'
// originalContentUrl: 'https://gyazo.com/32478dd423a4834abacbe9cc9b311d8e',
// previewImageUrl: 'https://gyazo.com/32478dd423a4834abacbe9cc9b311d8e'
});
player.play('./audio/opening.mp3', err => {
if (err) throw err
});
console.log(resMessage)
// ユーザーにリプライメッセージを送ります。
return client.replyMessage(event.replyToken, resMessage);
}
// ここ以降は理解しなくてOKです
const app = express();
app.get('/', (req, res) => res.send('Hello LINE BOT! (HTTP GET)'));
app.post('/webhook', line.middleware(config), (req, res) => {
if (req.body.events.length === 0) {
res.send('Hello LINE BOT! (HTTP POST)');
console.log('検証イベントを受信しました!');
return;
} else {
console.log('受信しました:', req.body.events);
}
Promise.all(req.body.events.map(handleEvent)).then((result) => res.json(result));
});
// ローカルで確認するときに必要
app.listen(PORT);
console.log(`ポート${PORT}番でExpressサーバーを実行中です…`);
画像データからバイナリ値を取得する方法を模索中、、、
ローカルのデータのバイナリ値を取得する方法をゲットだぜ
ああ、いやそもそも、カメラから保存するときにバイナリデータ挟んでるやんけ
サウンドセンサーは、なんか使えないなー
やはり我照度センサーしかかたん
くっつけて、0.3Vくらいが閾値かなー?
ううー、やはり、最終的な動作を実現するときに、微細なところを詰めていくと時間がかかるな、、、
リッチメニューって同時に全部作成しないとダメなことを忘れて、一つ設定したら、適当してまた次やってみて、前のやつ消えてるやん、ってことがあるよね
余裕があれば、サポートAPIのLINE WORKSとかそのあたり触ってみたかったなー他の人の投稿みて、刺激うける!できるかはまったくわからんが
なんかNodejsでの別ファイルの呼び出しがしっくりこんな。よくわからん警告がでるぞ?
いつも時間関係を忘れている
やべー、動画むずお
発表こわいー
基本的に、ハッカソンはやること決めて望めるなら臨んだほうが良い気がしてきた。発表資料作るのもハッカソンであると心得る。
途中からここに残す作業を忘れていた、、、反省。。。
ポモドーロとか使って、休憩中に書いたりするのも良いかもしれない。今後開発とかするときに試してみよう
NASAのAPIがあるのか!
ストリームリっと
姿勢判定、、、
みんなデザインが良いよねー
くそー発表うまくできなかったぜ!