シェアする

[GAS]全米が泣いた親不孝 LINE Botを作ってみた

シェアする

どーも最近反抗期のオーカワです。以前親に生存確認を送るBOTを作りました。

ここであえてのLINE Notify 生存確認BOT
LINE NotifyとIFTTTを使ってLINEのBOTを作りました。このLINEのBOTで親の生存確認を自動にしていこうと思います。結果はどうなるんでしょうか?乞うご期待

IFTTTとLINE Notiftを使い、毎朝8:00に元気ですと送信するBOTでした。

まぁ速攻でバレたんですがwwwwwwwwww

なので今回はバレないように慎重に作っていこうと思います(技術の無駄遣いが始まる)

スポンサーリンク




前回バレた原因

  • グループに参加させないといけない
  • ぴったり8:00に送信
  • アカウント名がLINE Notify
  • メッセージの最初に必ず[IFTTT]

まぁこんな所だと思います。これを改善していこうと思います。

箇条書きにしてみると、ひどい内容です(笑)

BOT作成の準備

はい。今回はLINE NotifyやIFTTTなどを使わずに本格的なLINE BOTを作っていきます。企業のLINE BOTと一緒です。

BOTを作るには

  • LINE Business Centerに登録
  • LINE DevelopersのChannelsにアクセス
  • ChannelのIDやアクセストークンを取得

結構やる事がありますね。

LINE Business Centerに登録、アカウントを作成します。

LINE@ MANAGERの設定

まずはLINE@の設定から

アカウント設定のBOT設定に行き、BOTの利用を許可します。

リクエスト設定のWebhook送信を利用すると設定します。
(ここを設定しないとBOTのプログラムが動きません)

後は自由に設定をします。僕はこんな感じに設定しました。

アカウント名やアイコンは自由に適当に

LINE Developers(Messaging API)の設定

事前に設定するものは特にありません。

LINE Developersにはプログラムで使う情報が載っています。

ここにあるWebhook URLは後に設定をします。

ボツ案

まずはボツ案から。興味のない方は下にスクロールを

Raspberry Piを用いた生存確認システム

次回予告でRaspberry Pi を使うと言ったのに、ボツに......(悲)

家にあるRaspberry Piの上に携帯を近づけると「元気です」と送信するBOT......

LINE Beaconのシステムを使用し、Bluetoothを用いて携帯が近づいたか判断をします。近づいたらメッセージを送信と......

これならBOTでも、本当に生存確認が出来ているので、バレてもいいと思っていました。

何がダメなの?

動作が不安定なんです。携帯を近づけても反応しない。と思えば10件程「元気です」と送信さたり、されなかったり。はっきり言ってゴミです。

これはネットワークが原因だと思われます。

LINE BOTと通信する為に必要なWebhook URLはSSL認証が必要です。ですが僕はSSL認証をしているアドレスを持っていなかったので、無理やりNode.jsのlocal tunnelという技術を使用し、技術的にSSL認証を偽装しました。これが無理やりすぎて不安定になっているという感じでした。

その他にもいろいろ実装しましたが、Raspberry Piを使う事がボツに。SSL認証とかダルすぎだろ、Twitterを見習えって

人工知能無能を利用した自動返信

Docomoさんの雑談APIを使用して、来たメッセージに自動で返信をする機能を作りました。

まぁバレますよね。ボツです。ボツー

プログラムは後ほど出てきますが、コメントアウトしています。

自分の過去ツイートを学習させたものを作っても、ほとんどが下ネタ&超ぎこちないのでボツに......(過激すぎて画像載せられない)

作成したBOT

ようやく本題ですね。

特定の単語を含む文章にのみ自動返信

今は「元気」と含まれる文章にのみ「元気」と返信するような仕組みになっております。技術レベルが一気に低くなった

親とのLINEを見返すと、親のメッセージが50件中、約40件が「元気かい」だったんですね。

もはや親BOT説ありますよね。予測変換なんでしょうが。

80%BOTが自動で返信してくれば便利ですね。残りの20%は手動BOTで対応です。

作成したプログラム

プログラムはGoogle Apps Scriptで書きました。Java Script言語だと思っていただいて大丈夫です。(正確には違いますが)

Google Apps Scriptはクラウド上でスクリプトを実行することで操作できるサービスです。

ボツ案でも話したSSL認証が、Goolge Apps Scriptを使うと簡単に回避出来まーす。

使い方

Google Driveにアクセスして人気のフォルダー(場所)で右クリックし、Google Apps Scriptを選択します。

次にプログラムをコピペし、プログラムの設定をします。

設定する箇所は

  • 2行目のSLACK_API及び87~88行目
  • 3行目のCHANNEL_ACCESS_TOKEN

親からのメッセージを受け取る為にSlackを使用しています。別にTwitterでもなんでも良かったのですが、僕はよくSlackを利用しているので使いました。

Slackの設定はこちらを参考に(特にSlackAppのLibrary Key)の設定を見てください。

プログラミング初心者でも簡単にSlack Botを作れる方法をご紹介します。Google Apps Scriptを用いた実装方法です。

CHANNEL_ACCESS_TOKENはLINE Developers(Messaging API)に載っています。

設定が終わったら、プログラムの公開設定をします。

公開設定をする事によって、プログラムがLINEのメッセージを受け取る事が出来ます。

  • 公開→ウェブアプリケーションとして導入

  • プロジェクトバージョンを新規作成に設定
  • アプリケーションにアクセスできるユーザーを全員(匿名ユーザーを含む)に設定

  • Googleから承認が必要と言われるので、承認します。

承認すると公開するURLが作られます。このURLをLINE Developers(Messaging API)のWeb hook  URLに設定します。

うまく設定出来てると、プログラムが動くはずです。

結果

元気と含む文章だったら元気と返し、それ以外は無視します。

このBOTの想定は親ですが、今回は僕がBOTと対話します。

画面左がLINE,右がSlackの画面です。

今回はBOTをグループなどに入れないので、やりとりが見えないといけないのです。

なのでSlackに通知を入れるようにプログラムを書きました。

ちなみにこのBOT、友達登録されても通知をしてくれます。

友達が追加されましたU~~~~~~~~~~~~~~~~~~~~~~~~~

このようなメッセージが届くはずです。

UのあとはLINE のUser IDです。(いつも使ってるLINE IDではありません)

このUser IDは後で使うので記憶しておきます。ユーザー名を表示出来ないのは仕様です。どうしようもありません。

僕は親にBOTのLINEのQRコードを送って、すぐにSlackに通知来たUser IDを親と記憶しました(超手動)

どうやって手動でメッセージを送るの?

はい。自動返信はプログラムがやってくれます。

手動でメッセージを送る場合、LINE@からLINE BOTにログインして、超使いづらいUIからメッセージを送らないといけません。しかもメッセージに送る相手を選べなくて、友達全員に送ってしまう糞システム

いちいちログインして、公式のサービス使うのも馬鹿らしいので、メッセージ送るプログラム(コマンド)を作成しました。

作成したプログラム

lineというコマンドで保存しました。シェルで動きます。別にわざわざコマンドにする必要ないけど

一応Mac と Linuxで動作確認をしています。Windowsは多分動くと思いますが、僕はWindowsを滅多に使わないので、試していません。

Channel_Access_TokenとUser_idは各自設定してください。

使い方

元気ですと送信されます。

任意の文書が送信されます。

実行結果

普段は親に送るプログラムですが、今回はテストなので、BOTから僕に送ってみようと思います。

パソコンは常に持ち歩いているので、このコマンドさえあれば大丈夫ですね。

ちなみにこのコマンドはシェル芸と組み合わせる事によっていろいろと悪用が出来ます。絶対にやるなよ。友達減るぞ

まぁアホです。他にもいろいろ面白い事が出来ますが、この辺にしときます。

シェル芸に興味持った方はこちらの記事もどうぞ

JKもびっくり!!ゴリ押しでシェルスクリプトを実行してみたった
以前20%の確率で性器を出すドラえもん!!という記事を書きました。見て頂けたでしょうか? その中で道具を集め〜のシェル芸の部分...

応用例でっす(2017/8/26日追記)

シェルスクリプトでLINEの花火を楽しもう
8月14日からLINEのアップデートがあり、「花火」を含む文章を入力すると演出が入るようになったみたいです。 ちなみにiPho...
気づいたらLEGOでLINEをする時代だった件について
今回の記事は夏休み中にLEGOで遊んでいたら、クソくだらない事を思いついたので書いた次第でございます。大学生なのにレゴwとか冷たい事言わない...

応用例でっす。こちらの方が実用的かも(2017/9/6日追記)

【GAS】クックパッドのレシピを返信してくれるLINE Botを作ってみた。
当ブログの読者様から、リクエストがありましたので作ってみましたー。 いつもブログで勉強させていただいてます!(初心者でもできるよう...

現在LINE BOTは?動いてるの?

はい。動いています。

ただ親も2度目なので、かなり怪しがっています。

「これまた自動じゃないよね」とか「すぐ既読になるんだけど?」とか

ただ適当な事を言って信じてもらってます。

BOTの返信が早いと思う方もいると思いますが、僕と実際に連絡した人はわかると思いますが、

僕は基本的に返信がとてつもなく早いです。

基本的に30秒以内には返信するようにしています。キモいとか言わない

作ったBOTを導入する前に、1ヶ月程親とのLINEは5秒以内に返信するようにしていたので、怪しまれていないと思います(過信)

バレましたwwwwwwwwwwww(2017/6/22追記)

仕送りなくなっちゃう。まさか記事投稿して1日でバレるとは......(親はこのブログの事を知りません)

実家に土下座しに行く準備をしよう......

感想

正直バレるのをビビりすぎて、レベルの低いBOTになってしまいました。

ただほとんどのメッセージを自動で返信してくれるので、重宝しています。

どうしようかなぁ。とりあえず返信する時に、ランダムで時間をおいてから返信するようにします。

てかGoogle Apps Scriptは便利なので今後もっと使っていくと思います。

はい。そこの君ーーくだらないとか言わないのーーーーー

参考

参考にさせて頂いたサイトです。いつもお世話になっております。

LINE上で会話できる人工知能を利用したチャットボットを作りました。Google Apps ScriptとLINE Messaging API、ユーザローカルの人工知能チャットボットを使って簡単にシステムを構築する方法を紹介します。
# ~Google Apps Scriptとドコモ雑談会話APIによるLINE BOT開発日記~ あらかじめお断りしておくが、私は元インフラ系SEで、開発畑の人間ではない。プログラミング経験はゼロではないが、自分で書いたコードをビ...
(でも話があった通り、 RaspberryPiなどをLINE Beacon化で...
The following two tabs change content below.

オーカワ

ロボット勉強中の大学4年生!!いつもはTwitterにいるよ。フォローちてね♪
詳しいプロフィールは こちらから
スポンサーリンク







シェアする

フォローする