Amazon(※→Rakuten)のAPIを活用して、チャットbotを作成してみた
先日のshopifyのセミナーに参加して、
ユーザーの購買行動にSNSでの導線を作ってあげることの有効性を
いま一度考えてみました。
セミナー内では、LINE公式アカウントを作成することで
得られる顧客価値を取り上げていましたが、
これは、初回購入時にヒットするものではなく
購入後に利用してから、ロイヤルカスタマーまで昇華させるために
寄与するものだと思います。
LINEと消費者の購買行動が密接に紐づいていることは間違いないので、
安直ですが、カスタマージャーの上の方(探す、検討など)で
寄与できそうなアプリを作ってみようと考えました。
自分のShopifyサイトを持っていれば良かったですが、
今回は代用として、AmazonのAPIを用いてみます。
※(Amazon APIからRakuten APIに変更しています)
いま、RubyとRailsの学習をしているので、
今回はこれを踏まえて、以下のような機能を持たせた
アプリケーション開発を行います。
・機能
LINEでメッセージを送ると、それに沿った内容の商品をAmazonから探し、商品情報を返信してくれるチャットbot
・開発環境
Ruby : 2.6.5
Rails : 6.1.4.4
データベースはMySQLを使用し、heroku上でデプロイを行います。
実際に開発をスタートしていきます。
1.gemの導入
今回、LINEのチャットbotとAmazonの情報を紐づけて
アプリを開発するので、gemは以下を利用します。
gem 'line-bot-api'
gem 'vacuum'
※追記
環境変数を管理するため、以下のgemを追加で導入しています。
gem 'dotenv-rails'
2.コントローラーを作成する
linebotsコントローラーを作成します。
rails g controller linebots
今回のアプリケーションで、linebotsコントローラーには
以下の役割を持たせることとします。
LINEから送られたメッセージを受け取る処理をする
メッセージの内容をもとに、Amazon内で商品検索を行い、先頭に表示される商品ジャンルを取得する
取得した商品ジャンル内のランキングを取得する
取得したランキング上位3つの商品から、商品概要/画像/値段/商品リンクをメッセージで返信する形式へ変換する
botから返信を送る
3.ルーティングを設定する
メッセージが送信された際に、linebotsコントローラー内の
callbackアクションが呼び出されるようにしています。
post '/callback' => 'linebots#callback'
4.Git hubにpushする
Git hubデスクトップから、first commitとしてpushします。
5.heroku上にデプロイする
自分のherokuアカウントから、アプリケーションのデプロイを行います。
git push heroku master
6.LINE botアカウントを作成、設定する
LINEの開発者ページから登録を行います。
ログインをした状態で、MessageAPI > 今すぐ始めように遷移し、
新しいチャンネルの作成を行います。
7.Amazon APIの登録
Amazon APIの登録ページから、アカウント登録を行います。
と思っていたら、ここで問題発生。
Amazon APIに登録して、商品情報を取得できるようにするには
自分のウェブサイト等をもって申請し、
審査を通らなければならないとのことでした。
近々では難しいと判断し、Amazon APIの取得から
Rakuten APIを用いた手法に変更し、実装を目指します。
8.gemの変更
Rakuten APIを用いるためにgemを変更します。
# Amazon APIからRakuten APIに変更(gem 'vacuum'は削除)
gem 'rakuten_web_service'
9.コントローラーの修正(Amazon API→Rakuten API)
コントローラー内で実行したい処理としては変更ないため、
APIに紐づく部分のみ変更を行います。
10.最新版のファイルをherokuにデプロイする
Git hubを最新の状態にし、再度デプロイを行います。
11.Rakuten Developersに登録する
こちらのサイトから新規アプリ登録を行います。
アプリURL欄には、herokuでデプロイしているURLを入力します。
URLはコンソール上で以下を実行し表示される、
https://<アプリ名>.herokuapps.comが該当します。
heroku apps:anfo
12.環境変数を設定する
環境変数をherokuコマンドを用いてLINE・Rakuten共に設定します。
設定する項目は、以下の4つです。
# LINEの環境変数設定
$ heroku config:set LINE_CHANNEL_SECRET="[LINEのチャンネルシークレット]"
$ heroku config:set LINE_CHANNEL_TOKEN="[LINEのアクセストークン]"
# Rakutenの環境変数設定
$ heroku config:set RAKUTEN_APPID="[アプリ/デベロッパーID]"
$ heroku config:set RAKUTEN_AFID="[アフィリエイトID]"
13.動作確認
これで、手順としては完了しているはずなので、
実際にLINEで動作が上手くいくか確認します。
LINE Developerに載っているQRコードを読み取り、
トークで文字を打ってみます。
無事に楽天から商品情報を読み取ってくれました!
コントローラーの記述を理解するのに、かなり時間がかかったのと
Amazon APIについての理解が浅かったので、
制作までに時間がかかってしまいました。
これを応用することで、Shopify APIと連携して、
LINEを活用したチャットbotができれば、
そちらも作成してみたいと思いました。
ここまで読んでいただいた方、ありがとうございました!
この記事が気に入ったらサポートをしてみませんか?