1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

楽天書籍を検索できるLINEBotを作成してみた。

Last updated at Posted at 2021-08-02

楽天APIを使用して書籍を検索できるLINEBotを作成しました。
ネットショッピングするときに大量のデータを見るだけで、時間がかかってしまったこと、
結局どれを購入すべきかわからなくなったこと、皆さんもありませんか?
なので、売上1位書籍だけを取り出せるLINEBotを作成しました。

##完成したもの

image.png

image.png

  

##環境

  • LINE公式アカウント開設
  • LINE Developersアカウント登録
  • Herokuの登録
  • Node-REDインストール、アカウント登録
  • 楽天ブックス書籍検索API

##作り方

1.http inノードの編集
image.png
  

2.「function」ノード(左側):受け取ったメッセージ格納


// LINEサーバーからの情報を「msg.line」に移動させる
msg.line = msg.payload;
// msg.payloadにメッセージ本体を入れる

msg.payload = 
    {
        "format": "json",
        "applicationId": "アプリID",
        "booksGenreId": "001004008",
        "hits": 1,
        // 売上順にソートするよう設定
        "sort": "sales",
        // Lineに入力されたタイトルを設定
        "title": msg.payload.events[0].message.text
    };

return msg;

  

3.「http request」ノードの編集

image.png

4.switchノードの編集
image.png

5-1.「function」ノード(上側):検索した結果0件だった場合

const result = '検索結果がありません。';

// LINEサーバーからの内容を復元する
msg.payload = msg.line;
// 返信メッセージをhttp requestの結果にする
msg.payload.events[0].message.text = result;

return msg;

  

5-2.「function」ノード(下側):検索結果が1件以上の場合

// http requestの結果を取得する
item = msg.payload.Items[0].Item;
const result ='売上No.1書籍\nタイトル:' + item.title + '\n' + '筆者:' + item.author + '\n' + '詳細:' + item.itemCaption + '\n' + 'URL:' + item.itemUrl;

// LINEサーバーからの内容を復元する
msg.payload = msg.line;
// 返信メッセージをhttp requestの結果にする
msg.payload.events[0].message.text = result;

return msg;

  
  

6.Reply Messageの設定
image.png
  
##まとめ
時間はすごくかかりましたが、完成できてほっとしています。
最後まで読んでいただきありがとうございました。
  
  

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?