IT・Web

Ruby製Webフレームワーク「Sinatra」で LINE Messaging API を試す

RubyでLINEボットを作ってみる。

概要

GitHubに公開されているLINE公式のSDKを利用して、オウム返しボットを作成します。

この記事を読み進めるにあたって

この記事は「LINE developer」でのチャンネル作成とアクセストークンの取得が既に完了している、またHerokuへの登録と「Heroku CLI」が既に導入されていることを前提とします。

開発環境、使用ツール

開発環境及び主な使用ツールは以下になります。

  • Ruby: ver 2.4.2
  • Sinatra: ver 2.0.1
  • Bundler: ver 1.15.4
  • line-bot-sdk: ver 1.2.2
  • Vagrant: ver 1.9.1
  • CentOS: ver 6.7 (Final)
  • PaaS: Heroku

Sinatra でアプリケーションを作る

SinatraはRailsよりも軽量でキャッチアップも容易なRuby製WebアプリケーションDSLです。

Sinatraの使い方は公式のドキュメントを参考にしました。

アプリケーションのプロジェクトを作成

アプリケーションに関連するファイルを設置するディレクトリを作成します。

Gemfileの作成

line-bot-sdkをインストールするためにGemfileを作成します。

Gemfileの編集、bundle install 実行

Gemfileの編集を以下のように編集します。

bundle installを実行し、Gemをインストールします。

アプリケーションのメインコード

オウム返しをしてくれるコードを作成します。

上記で作成したファイルを以下のように編集します。

Heroku へデプロイする準備

Herokuへアプリケーションを作成します。

CLIからHerokuへログインし、Herokuアプリケーションを作成後、環境変数を追加します。

「.gitignore」ファイルを作成し、以下を参考に編集します。

アプリケーションをHerokuへデプロイします。

LINE developer の設定

「LINE developer」の管理画面からチャンネルの詳細ページへ遷移し「Webhookの設定」を行います。

「Webhookの送信」の値を「利用する」に変更、「Webhook URL」には「今回作成したHerokuアプリケーション名.herokuapp.com/callback」を入力します。

あとは、チャンネルの詳細ページにある「QR コード」からを今回作ったチャンネルを友達追加します。

おわり

RubyのSDKをざっと見ましたが、プッシュ通知用のメソッドが見当たらず。

もしプッシュ通知を実装したい場合はRuby以外の選択が望ましいです。以前、Pythonでプッシュ通知を実装した記事を書いたので載せておきます。

参考記事

記事内画像

Paul Jarvis on Unsplash

ABOUT ME
maechan
ベンチャー企業、フリーランス、スタートアップを経験。 開発業務、人事業務に従事していました。 現在は農業系スタートアップ企業でエンジニアとして働いています。 リモートワークをしているノマドサラリーマンです。茶道とワークアウトが趣味です。