はじめに
Railsの勉強のためにLINEBOTを作ってみました。 内容はLineメッセージに調べたい単語を送信すれば、Wikipediaの概要とurlを返すものです。LineBotの設定
下記のリンクを参考に設定しました。ありがとうございます。[今更ながらRails5+line-bot-sdk-ruby+HerokuでLineBot作成してみたら、色々詰まったのでまとめました。][1]
[1]:https://qiita.com/y428_b/items/d2b1a376f5900aea30dc
Wikipediaの情報取得
Wikipediaの情報を取得するためにGemがあったので、そちらを利用しました。 [wikipedia-client][1] [1]:https://github.com/kenpratt/wikipedia-clientGemgile
gem 'wikipedia-client'
$ bundle install
Controllerを編集
```ruby:linebot_controller.rb class LinebotController < ApplicationController require 'line/bot' require 'wikipedia'callbackアクションのCSRFトークン認証を無効
protect_from_forgery :except => [:callback]
def client
@client ||= Line::Bot::Client.new { |config|
config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
}
end
def callback
body = request.body.read
signature = request.env['HTTP_X_LINE_SIGNATURE']
unless client.validate_signature(body, signature)
head :bad_request
end
events = client.parse_events_from(body)
events.each { |event|
if event.message['text'] != nil
# LINEで送られてきた文書を取得
word = event.message['text']
# 日本語版Wikipediaを設定
Wikipedia.Configure {
domain 'ja.wikipedia.org'
path 'w/api.php'
}
end
# wikipediaから情報取得
page = Wikipedia.find(word)
# 概要とURLを返す
response = page.summary + "\n" + page.fullurl
case event
# メッセージが送信された場合
when Line::Bot::Event::Message
case event.type
# メッセージが送られて来た場合
when Line::Bot::Event::MessageType::Text
message = {
type: 'text',
text: response
}
client.reply_message(event['replyToken'], message)
end
end
}
head :ok
end
end
あとはherokuにデブロイして、動作確認すれば完成です。
<h1>動作イメージ</h1>
こんな感じで概要とURLを返してくれるようになります。
![2019-04-11 0.53のイメージ.jpg](https://qiita-image-store.s3.amazonaws.com/0/330080/e5ecb9ad-e9e6-c387-580a-43bce2ce68b2.jpeg)
<h1>まとめ</h1>
簡単なまとめになりましたが以上になります。
結構簡単に実装できました。APIと組み合わせれば色々使えるんじゃないかなと思いました。
何かご指摘等がございましたらコメントよろしくお願いします。
<h1>参考サイト</h1>
[今更ながらRails5+line-bot-sdk-ruby+HerokuでLineBot作成してみたら、色々詰まったのでまとめました。][1]
[1]:https://qiita.com/y428_b/items/d2b1a376f5900aea30dc
[Web APIとは? (LINE bot API・グルナビAPI)][1]
[1]:https://qiita.com/NoharaMasato/items/6fb1ac277c965905e019
[wikipedia-client][1]
[1]:https://github.com/kenpratt/wikipedia-client