Help us understand the problem. What is going on with this article?

LINEのMessaging APIで自動応答のBOTを作成する with Ruby

More than 3 years have passed since last update.

はじめに

4月に公開された「BOT API Trial Account」について、11月16日にアカウントの完全削除を行うというメールが送られてきて、利用者は新しいMessaging APIを利用する「Developer Trial アカウント」に移行する必要があるとのことでした。

[参考URL]
https://business.line.me/ja/news/20051494

ということで、新しいAPIを利用して、投稿されたメッセージをそのまま送り返す「やまびこBOT」を作ってテストしてみたので、ここにまとめます。

[参考URL]
https://business.line.me/ja/services/bot

ビジネスアカウントの作成

以下のURLにアクセスし、LINE BUSINESS CENTERにて自分のLINEアカウントでログインします。

https://business.line.me/ja/

Messaging API

メニュー内の「サービス」から「Messaging API」を選択し、「Developer Trialを始める」ボタンをクリックする。

スクリーンショット 2016-10-21 6.32.38.png

次に表示された画面で「会社/事業者を選択」をクリックする。

スクリーンショット 2016-10-21 6.36.26のコピー.png

次の画面でアカウント名、業種を設定して「確認する」をクリックする。

スクリーンショット 2016-10-21 6.42.58.png

次の画面で「申し込む」をクリックしてアカウントの作成が完了です。

LINE@MANAGER

次の画面で「LINE@MANAGER」をクリックすると以下の画面が表示されるので、「APIを利用する」をクリックする。

スクリーンショット 2016-10-21 6.46.27.png

いくつかの画面で「確認」をクリックすると、「Bot設定」画面が表示されるので「Webhook送信」を「利用する」、「自動応答メッセージ」を「利用しない」に設定して「保存」をクリックする。

スクリーンショット 2016-10-21 6.51.37.png

以上でアカウントの準備ができました。

再びLINE BUSINESS CENTER

「アカウントリスト」を選択し、作成したアカウントの「Messaging API」の横にある「LINE Developers」をクリックします。

スクリーンショット 2016-10-21 6.55.04.png

アカウントの設定画面が表示されるので、「Webhook URL」にBOTのアプリケーションを設置するURLを入力します。

また、「Server IP Whitelist」に使用するサーバーのIPアドレスを設定することもお忘れなく。

RubyからMessaging APIを利用

API用gemのインストール

$ gem install line-bot-api

以下のコードを上記Webhook URLで表示できる場所に保存。

index.rb
#!/usr/local/bin/ruby
# encoding: utf-8

# ライブラリの読込
require 'cgi'
require 'json'
require 'line/bot'

# CGIの生成
$cgi = CGI.new()

# 送信されたデータの整形
params = {}
$cgi.params.each {|key, val|
  params = JSON.parse(key)
}

# 返信に必要な情報の取得
replyToken = params["events"][0]["replyToken"]
msgType = params["events"][0]["message"]["type"]

if msgType == "sticker" then
  msgText = "イイね!"
else
  msgText = params["events"][0]["message"]["text"]
end

# 返信データの作成
message = {
  type: 'text',
  text: msgText
}

# データ送信
client = Line::Bot::Client.new { |config|
    config.channel_secret = "[自分のチャンネルシークレットを入力]"
    config.channel_token = "[自分のチャンネルトークンを入力]"
}
response = client.reply_message(replyToken, message)
#p response

# 初期認証用コード
puts <<EOF
Content-type: text/html

linebot
EOF

上記コードを保存した後、LINE Developersのチャンネル設定画面で、Webhook URLの右にある「VERIFY」というボタンを押して、URLの下に「Success.」と表示されることを確認する。

動作確認

設定画面に表示されているQRコードでBOTを友達に追加し、メッセージを送り、同じメッセージが返信されることを確認します。

ちなみに、僕が作成したBOT「ブラックベータ」は、以下のQRコードで友達に追加できるので、良かったら試してみてください。
また、スタンプを送ると「イイね!」と返します。

wrt6608w.png

できた!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away