2018年03月06日

GoogleHomeでLineを読み上げさせる

LineのグループトークをGoogleHomeで読み上げさせたくて調べてみた。

必要なもの、準備するもの、サービスなど
・LineDeveloppersへ登録してBOTを作る
・SSLのサーバー(自宅サーバーにSSL証明書なんてお金かけられないので外部の登録)
・自宅サーバー
・Google home notifier (Google Home を喋らせるためのモジュール)
・httpサーバースクリプト

構成
スクリーンショット 2018-03-17 11.04.05.png
1.Line発言

2.LineDeveloppersのMessagingAPIでBOTが受信

3.SSL(https)のサーバーで受信(ngrokやめてGoogleAppsScriptにした)

4.自宅サーバーPCで受信(わが家ではRaspberryPi)

5.GoogleHomeが受信して発声

最初にできあがったもの
3にngrokというhttpsのサーバーを使ってみた。
Line Developpersからの送信先がhttpsじゃなければ自宅サーバーに直接送信できて簡単なのにね。
問題は、ngrokの無料利用はURLがランダム文字列なので自宅httpサーバーを起動するたびにLineDeveloppersにURLを登録しなければならなかった。

再調査
httpsサーバーにGoogle apps scriptが使える。
スクリプトも書けるし、いいかんじ。
G-Drive使っている人は新規作成ですぐ作れるよ。
ここの記事参考
これでLineDevelopersからGoogleAppsScriptへ投げたデータを自宅へ転送!
とってもシンプル。
自宅サーバーのURL固定用に無料DDNSも申し込むと便利です。

参考:GoogleAppsScriptの転送コード
function doPost(e) {
// 受信
var text = e.postData.contents;

// 転送
var url = "http://xxx.xxx.xxx.xxx:xxxx"; // 自宅のアドレス(DDNS使うのがお勧め)
var headers = {
"Content-Type" : "application/json; charset=UTF-8"
};
var options = {
"method" : "post",
"headers" : headers,
"payload" : text
};
return UrlFetchApp.fetch(url, options);
}


各モジュールについてのインストールや設定は↓の検索でどうぞ。
「Line Developers Google Home Notifier 読み上げ」でググった先の皆様に感謝です。
posted by Vintage at 21:26| Comment(0) | TrackBack(0) | Google Home