はじめに
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アカウントでログインします。
Messaging API
メニュー内の「サービス」から「Messaging API」を選択し、「Developer Trialを始める」ボタンをクリックする。
次に表示された画面で「会社/事業者を選択」をクリックする。
次の画面でアカウント名、業種を設定して「確認する」をクリックする。
次の画面で「申し込む」をクリックしてアカウントの作成が完了です。
LINE@MANAGER
次の画面で「LINE@MANAGER」をクリックすると以下の画面が表示されるので、「APIを利用する」をクリックする。
いくつかの画面で「確認」をクリックすると、「Bot設定」画面が表示されるので「Webhook送信」を「利用する」、「自動応答メッセージ」を「利用しない」に設定して「保存」をクリックする。
以上でアカウントの準備ができました。
再びLINE BUSINESS CENTER
「アカウントリスト」を選択し、作成したアカウントの「Messaging API」の横にある「LINE Developers」をクリックします。
アカウントの設定画面が表示されるので、「Webhook URL」にBOTのアプリケーションを設置するURLを入力します。
また、「Server IP Whitelist」に使用するサーバーのIPアドレスを設定することもお忘れなく。
RubyからMessaging APIを利用
API用gemのインストール
$ gem install line-bot-api
以下のコードを上記Webhook URLで表示できる場所に保存。
#!/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コードで友達に追加できるので、良かったら試してみてください。
また、スタンプを送ると「イイね!」と返します。
できた!