[Rails] LINE MessagingAPI를 사용하여 echo (앵무새 반환) Bot을 만듭니다.
7799 단어 LINEmessagingAPI경 6루비Rails
개요
웹 API를 학습하기 위해 LINE Bot 개발을 수행했습니다.
이번에는 간단한 보낸 텍스트를 그대로 반환하는 echoBot을 만듭니다.
Rails에서 개발하여 Heroku에 배포할 수 있습니다.
환경
· Ruby 2.6.5
· Rails 6.0.3.2
· PostgreSQL
・Heroku
목차
· LINE Developers로 채널 만들기
・Bot 본체의 프로그램을 작성(Ruby/Rails)
· Heroku에 배포
LINE Developers로 채널 만들기
우선 LINE 개발자 등록을 실시합니다. 그런 다음 공급자와 채널을 만들어 필요한 API 키를 가져옵니다.
ぇぺぺrs. 네. 비 · 그럼 / 드 cs / 메사 긴 g 아피 / 곁 친 g - r d /
공식(위)을 참고로 Bot용 channel을 작성합니다.
쉽게 작업을 글머리 기호로하면,
· LINE Developers 콘솔에 로그인
· 이름과 이메일 주소를 입력하여 개발자 계정 만들기
· 프로바이더, 채널을 작성, 이 때 MessagingAPI를 지정
· 액세스 토큰 발급
· 응답 메시지 끄기 Webhock을 켜기로 설정하십시오.
Channel secret과 Channel access token이 Bot 개발에 필요하므로 여기에서 메모해 둡니다!
Bot 본체의 프로그램 작성(Ruby/Rails)
Heroku에 배포하기 때문에 DB는 PostgreSQL을 사용합니다.
$ rails new アプリ名 -d postgresql
$ cd アプリ名
$ git init
필요한 gem 설치
line-bot-api라는 gem을 사용합니다.
Gemfilegem 'line-bot-api'
$ bundule install
구현
1. 라우팅 설정
config/routes.rb
Rails.application.routes.draw do
post '/callback' => 'linebot#callback'
end
2. 컨트롤러 작성
$ rails g controller linebot
3. 컨트롤러에의 기술
콘트롤러에의 기술은 라인 공식 SDK의 RUBY를 참고로(코피페) 했습니다.
htps : // 기주 b. 이 m/ぃね/ぃねーぼ tsdk-by/bぉb/마s r/에ぁmpぇs/에쵸보 t/아 p. rb
class LinebotController < ApplicationController
require 'line/bot' # gem 'line-bot-api'
def client
@client ||= Line::Bot::Client.new { |config|
config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
}
end
post '/callback' do
body = request.body.read
signature = request.env['HTTP_X_LINE_SIGNATURE']
unless client.validate_signature(body, signature)
halt 400, {'Content-Type' => 'text/plain'}, 'Bad Request'
end
events = client.parse_events_from(body)
events.each do |event|
case event
when Line::Bot::Event::Message
case event.type
when Line::Bot::Event::MessageType::Text
message = {
type: 'text',
text: event.message['text']
}
client.reply_message(event['replyToken'], message)
end
end
end
"OK"
end
end
Heroku에 배포
먼저 Heroku에 로그인하고 Heroku에 앱을 만들고 배포합니다.
Heroku 측에 환경 변수를 설정합니다.
$ heroku config:set LINE_CHANNEL_SECRET=ここに先程メモしたChannel Secretを貼り付ける
$ heroku config:set LINE_CHANNEL_TOKEN=ここに先程メモしたアクセストークンを貼り付ける
LINE developers로 Webhook settings 설정하기
배포 된 주소 끝에/callback이있는 URL을 Webhook으로 설정합니다.
이것으로 echo-bot의 완성입니다. 텍스트를 보내면 같은 텍스트를 반환합니다.
정리
현재는 코드 변경 후 배포하지 않으면 반영되지 않으므로,
다음 번에는 ngrok을 사용하여 로컬 환경에서 이동하는 방법을 수행합니다.
htps : // 이 m / 시즈 9d / ms / 42b2cb209b2 23 a 9a f6d
참고문헌
이하의 기사를 참고로 했습니다.
htps : // 이 m / 풀이나 1217 / ms / 00d6461 9f54900377 A3
Reference
이 문제에 관하여([Rails] LINE MessagingAPI를 사용하여 echo (앵무새 반환) Bot을 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shizu9d/items/2bd2618409c9e5c93e0f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
· Ruby 2.6.5
· Rails 6.0.3.2
· PostgreSQL
・Heroku
목차
· LINE Developers로 채널 만들기
・Bot 본체의 프로그램을 작성(Ruby/Rails)
· Heroku에 배포
LINE Developers로 채널 만들기
우선 LINE 개발자 등록을 실시합니다. 그런 다음 공급자와 채널을 만들어 필요한 API 키를 가져옵니다.
ぇぺぺrs. 네. 비 · 그럼 / 드 cs / 메사 긴 g 아피 / 곁 친 g - r d /
공식(위)을 참고로 Bot용 channel을 작성합니다.
쉽게 작업을 글머리 기호로하면,
· LINE Developers 콘솔에 로그인
· 이름과 이메일 주소를 입력하여 개발자 계정 만들기
· 프로바이더, 채널을 작성, 이 때 MessagingAPI를 지정
· 액세스 토큰 발급
· 응답 메시지 끄기 Webhock을 켜기로 설정하십시오.
Channel secret과 Channel access token이 Bot 개발에 필요하므로 여기에서 메모해 둡니다!
Bot 본체의 프로그램 작성(Ruby/Rails)
Heroku에 배포하기 때문에 DB는 PostgreSQL을 사용합니다.
$ rails new アプリ名 -d postgresql
$ cd アプリ名
$ git init
필요한 gem 설치
line-bot-api라는 gem을 사용합니다.
Gemfilegem 'line-bot-api'
$ bundule install
구현
1. 라우팅 설정
config/routes.rb
Rails.application.routes.draw do
post '/callback' => 'linebot#callback'
end
2. 컨트롤러 작성
$ rails g controller linebot
3. 컨트롤러에의 기술
콘트롤러에의 기술은 라인 공식 SDK의 RUBY를 참고로(코피페) 했습니다.
htps : // 기주 b. 이 m/ぃね/ぃねーぼ tsdk-by/bぉb/마s r/에ぁmpぇs/에쵸보 t/아 p. rb
class LinebotController < ApplicationController
require 'line/bot' # gem 'line-bot-api'
def client
@client ||= Line::Bot::Client.new { |config|
config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
}
end
post '/callback' do
body = request.body.read
signature = request.env['HTTP_X_LINE_SIGNATURE']
unless client.validate_signature(body, signature)
halt 400, {'Content-Type' => 'text/plain'}, 'Bad Request'
end
events = client.parse_events_from(body)
events.each do |event|
case event
when Line::Bot::Event::Message
case event.type
when Line::Bot::Event::MessageType::Text
message = {
type: 'text',
text: event.message['text']
}
client.reply_message(event['replyToken'], message)
end
end
end
"OK"
end
end
Heroku에 배포
먼저 Heroku에 로그인하고 Heroku에 앱을 만들고 배포합니다.
Heroku 측에 환경 변수를 설정합니다.
$ heroku config:set LINE_CHANNEL_SECRET=ここに先程メモしたChannel Secretを貼り付ける
$ heroku config:set LINE_CHANNEL_TOKEN=ここに先程メモしたアクセストークンを貼り付ける
LINE developers로 Webhook settings 설정하기
배포 된 주소 끝에/callback이있는 URL을 Webhook으로 설정합니다.
이것으로 echo-bot의 완성입니다. 텍스트를 보내면 같은 텍스트를 반환합니다.
정리
현재는 코드 변경 후 배포하지 않으면 반영되지 않으므로,
다음 번에는 ngrok을 사용하여 로컬 환경에서 이동하는 방법을 수행합니다.
htps : // 이 m / 시즈 9d / ms / 42b2cb209b2 23 a 9a f6d
참고문헌
이하의 기사를 참고로 했습니다.
htps : // 이 m / 풀이나 1217 / ms / 00d6461 9f54900377 A3
Reference
이 문제에 관하여([Rails] LINE MessagingAPI를 사용하여 echo (앵무새 반환) Bot을 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shizu9d/items/2bd2618409c9e5c93e0f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ rails new アプリ名 -d postgresql
$ cd アプリ名
$ git init
gem 'line-bot-api'
$ bundule install
Rails.application.routes.draw do
post '/callback' => 'linebot#callback'
end
$ rails g controller linebot
class LinebotController < ApplicationController
require 'line/bot' # gem 'line-bot-api'
def client
@client ||= Line::Bot::Client.new { |config|
config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
}
end
post '/callback' do
body = request.body.read
signature = request.env['HTTP_X_LINE_SIGNATURE']
unless client.validate_signature(body, signature)
halt 400, {'Content-Type' => 'text/plain'}, 'Bad Request'
end
events = client.parse_events_from(body)
events.each do |event|
case event
when Line::Bot::Event::Message
case event.type
when Line::Bot::Event::MessageType::Text
message = {
type: 'text',
text: event.message['text']
}
client.reply_message(event['replyToken'], message)
end
end
end
"OK"
end
end
$ heroku config:set LINE_CHANNEL_SECRET=ここに先程メモしたChannel Secretを貼り付ける
$ heroku config:set LINE_CHANNEL_TOKEN=ここに先程メモしたアクセストークンを貼り付ける
현재는 코드 변경 후 배포하지 않으면 반영되지 않으므로,
다음 번에는 ngrok을 사용하여 로컬 환경에서 이동하는 방법을 수행합니다.
htps : // 이 m / 시즈 9d / ms / 42b2cb209b2 23 a 9a f6d
참고문헌
이하의 기사를 참고로 했습니다.
htps : // 이 m / 풀이나 1217 / ms / 00d6461 9f54900377 A3
Reference
이 문제에 관하여([Rails] LINE MessagingAPI를 사용하여 echo (앵무새 반환) Bot을 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shizu9d/items/2bd2618409c9e5c93e0f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Rails] LINE MessagingAPI를 사용하여 echo (앵무새 반환) Bot을 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shizu9d/items/2bd2618409c9e5c93e0f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)