読者です 読者をやめる 読者になる 読者になる

十を聞いて一を知る

要領の悪い高専生がプログラミングをします。

おうむ返しLINE Botを作ってみる

こんばんは。
またまた前回に引き続きLINE Botを弄ります。
前回、ゴール直前まで来ていたみたいなので、今日はちょっと短めです。というか一瞬で終わります。


毎度おなじみevents_controller.rbに追記します。(参考 【ruby】net/httpを使ってPOSTでJSON投げる時、httpリクエストヘッダを追加して通信はhttps
チャンネルアクセストーク前エントリを見てください。


events_controller.rb

require 'net/https'
if x_line_signature == signature
  reply_message(body)
  content = {"request_body"=>body}
else
  content = nil
end
def reply_message(body)
  uri = URI.parse("https://api.line.me/v2/bot/message/reply")
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  req = Net::HTTP::Post.new(uri.path)

  hashed = JSON.parse(body)
  replyToken = hashed["events"][0]["replyToken"]
  text = hashed["events"][0]["message"]["text"]
  channnel_access_token = "チャンネルアクセストークン"
  req_body = "{\"replyToken\":\"#{replyToken}\",\"messages\":[{\"type\":\"text\",\"text\":\"#{text}\"}]}"

  req["Content-Type"] = "application/json"
  req["Authorization"] = "Bearer #{channnel_access_token}"
  req.body = req_body

  https.request(req)
end




今日書くものは以上です。
あとは確認して終了です。

f:id:taira1999120:20170302235219p:plain
無事返って来ました。

以上でLINE Bot編は終了です。
またモチベが湧いて来たら改良します。

明日はRailsのコードリーディングかRails Tutorialになると思います。
それではまた明日。