前回はオウム返しまではできた。
LINE BOT が チラシをくれた(1) 〜おうむ返し編
#追記
この記事は、LINE Messaging APIになる前のbot trialの内容である。
#内容
今回はメッセージなどをBOTから送ってくれるようにするところまで。
普通に家に来るチラシは寝て起きればポストに入ってるのが普通。
LINE BOT でも寝て起きれば来るようにしなければなんかダサいし実用的じゃない。
そのために何かの条件でBOTから自動的におくってくれるような仕様にすればいい。
#0.LINE BOT API
contentType | mean |
---|---|
1 | テキスト |
2 | 画像 |
3 | 動画 |
4 | 音楽 |
7 | 位置情報 |
8 | スタンプ |
10 | 連絡先 |
今回は画像とテキストしか使わないので画像とテキストについて書いていくと思う。
#1.メッセージを返すために必要な情報
{
"to":["送る人のID"],
"toChannel":1383378250,
"eventType":"138311608800106203",
"content":{"contentType":1,
"toType":1,
"text":"おはよう"
}
}
実際に送るのがテキストメッセージの場合、上記のように contentType は 1 にそして text というフィールドが必要になる。
(ちな、 toType はどのような人に送るか。 個人に送る場合1になる。)
#2.画像を送るとき
{
"to":["送る人のID"],
"toChannel":1383378250,
"eventType":"138311608800106203",
"content":{"contentType":2,
"toType":1,
"originalContentUrl": "http://example.com/example.jpg",
"previewImageUrl": "http://example.com/examplesamune.jpg"
}
}
画像を送る場合 "originalContentUrl" と "previewImageUrl" というのが必要になる。
(この二つは同じでも可)
#3.PUSHする方法
LINE BOT は普通のwebアプリを作るのと似てると思う。
'linebot/callback/' が来たらそれに対して何かの処理をするのんだったら、 '/' が来たときの処理でPUSHしてやればいいんじゃないかと考えた。
Heroku には便利なアドオンがあって決めた時間にコマンドを実行みたいなのができるのでそれを使う。名前は Heroku scheduler という。
例えば 朝8時におはようっていうメッセージを自動的に送ってきて欲しかったら、
get '/' do
if (Time.now.hour == 23 && Time.now.min == 0)
toMe = ENV["MY_ID"]
request_content = {
to: [toMe],
toChannel: 1383378250, # Fixed value
eventType: "138311608800106203", # Fixed value
content: {contentType: 1,
toType: 1,
text: "おはよう"
}
}
request_content_json = request_content.to_json
RestClient.proxy = ENV["FIXIE_URL"]
RestClient.post(@endpoint_uri,request_content_json,@request_header)
end
end
っていうのを前回のコードに追記して
MY_ID を Heroku の環境変数に登録して Heroku に push する。
今回は自分に送るように開発してるので、to: の部分はあらかじめわかってる。
Heroku の Heroku Scheduler に 毎日23(UTC)に
$ curl https://myappname.herokuapp.com/
(myappnameには Heroku の アプリ名)
というコマンドを実行って設定すれば毎朝8時にメッセージが来るようになる。
画像を送信したければ、上のほうに書いてあるように request_content を変えるだけ。
#まとめ
これを自由自在に変えれば好きな事をBOTが送ってきてくれるようになる。
悪いところとかご指導してもらえると嬉しいです。
#次回
LINE BOT が チラシをくれた(3) 〜最後まで
#参考資料
[LINE BOT が チラシをくれた(1) 〜おうむ返し編]
(http://qiita.com/kurouw/items/f00229e51818d80ae643)
API reference for BOT API