環境構築
先人様達の偉大な知恵をお借りいたしました。環境構築において特にはまったところはありませんでした。
・ 環境構築:
LINE BOT をとりあえずタダで Heroku で動かす
http://qiita.com/yuya_takeyama/items/0660a59d13e2cd0b2516#comment-e6737f3166be32597681
Rails HerokuでLINE BOTを試してみた
http://qiita.com/Arahabica/items/98e3d0d5b65269386dc4
・ エラー対応
http://qiita.com/harumakiyukko/items/05b29b1cc7e72514aa76
=>私の場合はご丁寧に全部対応することになりましたが、その通りにすれば全く問題ありませんでした。
・ LINE 公式
https://developers.line.me/bot-api/getting-started-with-bot-api-trial
メンヘラボット
趣旨:
・ 話しかけると、メンヘラな返事をしてくれる。
・ 特定のワードに対しては、とりあえず定型で返す。["おはよう","愛してる"]
という、練習用Botです。すいません。
![スクリーンショット 2016-05-31 16.10.00.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F128165%2F5e45d825-8e66-6cfd-2db3-af2069179aff.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1198efa4b3c912c4dc4d5e89740c398d)
1:LINEへの登録~Herokuへのデプロイ
http://qiita.com/Arahabica/items/98e3d0d5b65269386dc4
まるっきりこのまんまです。本当にありがとうございます。
2:話しかけられた時の返事を登録する。
前段で作成したRails アプリに適当にScaffoldで作成します。
rails g scaffold Post name:string
3:ランダムで返事をする。
1で作成したlib/line_client.rbをコントローラー代わりにオウム返しではなく返事ができるようにします。
def send(line_ids, message)
@post=Post.offset( rand(Post.count) ).first
# Postからランダムで返事を選ぶ。
post('/v1/events', {
to: line_ids,
content: {
contentType: ContentType::TEXT,
toType: ToType::USER,
text: @post.name #返事をPostから取ってくる。
},
toChannel: TO_CHANNEL,
eventType: EVENT_TYPE,
})
4 特定の発話に対応する。
と言っても条件分岐でとりあえず作っただけです。ゴメンなさい。
def send(line_ids, message)
@post=Post.offset( rand(Post.count) ).first
if message == "愛してる"
post('/v1/events', {
to: line_ids,
content: {
contentType: ContentType::TEXT,
toType: ToType::USER,
text: "んほぉぉぉぉぉぉ!すきすきすきすきすきすきすきすきぃぃぃぃぃ"
},
toChannel: TO_CHANNEL,
eventType: EVENT_TYPE,
})
elsif
message == "いってきます"
post('/v1/events', {
to: line_ids,
content: {
contentType: ContentType::TEXT,
toType: ToType::USER,
text: "どこいくの?どこいくの?どこいくの?寂しい寂しい寂しい。。。"
},
toChannel: TO_CHANNEL,
eventType: EVENT_TYPE,
})
elsif
message == "おはよう"
post('/v1/events', {
to: line_ids,
content: {
contentType: ContentType::TEXT,
toType: ToType::USER,
text: "おはよう。なんで今まで連絡くれなかったの?"
},
toChannel: TO_CHANNEL,
eventType: EVENT_TYPE,
})
else
post('/v1/events', {
to: line_ids,
content: {
contentType: ContentType::TEXT,
toType: ToType::USER,
text: @post.name
},
toChannel: TO_CHANNEL,
eventType: EVENT_TYPE,
})
end
end
5 まとめ
という感じでデプロイして使えばとりあえず支離滅裂ではありますが、お話はできる感じです。
かなり手軽に作れる感じで、様々なAPIと連携すれば色々なことができると思いました。
一応QRを貼っておきますので、もしよろしければお試しくださいませ。どうぞよろしくお願い致します。
![スクリーンショット 2016-11-18 21.58.24.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F128165%2F20ccddd7-e470-069b-f611-e61e54f3d301.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3e7065068de179907795542339b06be7)