11
7

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 1 year has passed since last update.

【LINEでおすすめレシピ提案♪】MakeでLINE Bot作成

Last updated at Posted at 2022-09-07

献立を考えている時や、チラシを見て「あら、安いやん」と思った時に、気軽にレシピを検索できたらなぁ…と思ったことはありませんか?

私はよくあります!

なので、LINEでキーワードを送ったらおすすめレシピが返ってくる✨LINE Botを作ってみることにしました。

プログラム未経験のド素人ですが、ノーコードのツールを駆使してチャレンジいたします!

はたして本当に作ることができるんでしょうか・・・:interrobang:

結論、なんとかできました!

linebot_0907_3.png

メニューである「サラダ」や、食材「豚肉」などのキーワードで、おすすめレシピがちゃんと返ってきました!

早速、作り方をご紹介いたします

使用したツール

Make
LINE Developers
楽天レシピAPI
・ Googleスプレッドシート

準備

それぞれのアカウント登録を行います。

楽天レシピさんは、一覧とランキングの2種類のAPIが使用可能になります。
・楽天レシピカテゴリ一覧API
・楽天レシピカテゴリ別ランキングAPI

Makeでシナリオ作成

完成形はこんな感じになりました。
linebot_make_0907_1.png
モジュールという丸いヤツをつないで、それぞれ処理をしてもらいます。

LINEのモジュールについてはこちらを参考にさせていただきました。

まずはAPIを繋ぐ

linebot_make_0907_5.png
HTTPモジュールを追加して、楽天レシピAPIのURLを入力します。
クエリに何を入れるかなんですが、APIの中身を見てみると、categoryIdで呼び出せそうな感じです。
linebot_make_0907_6.png
クエリを「categoryId」で設定し、あとは、Parse JSONモジュールで自動でJSONを分解してもらいます。
linebot_make_0907_2.png
楽天レシピさんはランキング4位までのレシピを呼び出せますので、LINEモジュールSend a Reply Messageには、 4つのレシピタイトルとURLを返してもらえるように設定します。
linebot_make_0907_10.png

linebot_0907_1.PNG

できました!

ちなみに32番は魚料理のレシピです。

なんだかいける気がしてきました:laughing:

categoryIdでは、どの料理が何番か覚えていないとリクエストができません。
「魚」でリクエストするためにカテゴリーネームを入れてみました。
linebot_make_0907_3.png
linebot_0907_2.PNG

失敗しました!

総合ランキング上位の人気レシピが返ってきているようです。

カテゴリ一覧のリスト化

「魚」で返してもらうためには、まずカテゴリ一覧で検索をして、ヒットしたキーワードのcategoryIdを取得する必要があるみたいです。

どうやってリスト化できるかを考えてみました。
テーブルツール?JSON?Python??
私にはまだまだ難しすぎます。。。

そこで、自分でGoogleスプレッドシートでカテゴリ一覧を作成しよう!と思い、APIのJSONデータをまるっとコピーしてExcelに貼り付けるという反則技を使うことにいたしました。

Google Sheetsを連携

追加する場所は、LINEとHTTPの間です。

A列の「categoryName:」をLINEで送ったキーワードでフィルタをかけて、D列の「CategoryId」を返す設定です。
linebot_make_0907_8.png linebot_make_0907_9.png

おまけで、フィルタの結果が「0の時はエラー」、「1の時はHTTPに進む」分岐を作成しました。

最後に

やっとなんとか形になりました。

試行錯誤のあと・・・

カテゴリ一覧APIをうまくリスト化することはできませんでした。

以前に記載していた試行錯誤

とりあえず「Make(integromat)・API・テーブル」で検索してみると、別のテーブルツールがヒットして、私には扱うのは難しいなと思うものばかりでした。

そんなときとつぜん、神からの啓示 仲間から大ヒントをいただきました:bangbang:

「Google SheetsモジュールでGoogleスプレッドシートと連携できる」

それなら、APIからGoogleスプレッドシートにデータ取りだせそう:bangbang:な気がする:bangbang:

早速Google Sheetsモジュールを見てみたところ、それっぽいものがありました。
「Make an API Call」
linebot_make_0907_7.png
使い方を検索してみましたがうまく探すことができず、唯一見つけたのがこちらです。

https://www.make.com/en/use-cases/how-to-make-an-api-call-tutorial

全然Google Sheetsと関係ない説明ですが、「Make an API Call」の使い方は同じかも?と思い、同じように設定してみました。・・・が、やはりうまくいきませんでした。。。

現在進行形の試行錯誤

ずーーーっと、どうすればリスト化できるのか考えていろいろ調べてみましたが、記載していたGoogle Sheetsモジュールの「Make an API Call」は なんか違うということは分かりました。

他の記事もいろいろ参考にさせていただき、やりたいことはなんとなーく分かってきました。
linebot_make_0907_12.png
この大量に返ってくるカテゴリ一覧をいい感じのリストにするだけ!

・・・なんですが、何を使ってやればいいのかが分からず、いろんなモジュールを試してみましたが、そうこうしているうちに、Makeから無料お試し版の操作上限通知が来てしまいましたので、またもやここで断念いたします:cry:

まとめ

反則技を使ったことで個人的にはあまり全然スッキリはしていませんが。。。

ド素人の私が、はじめから100点満点を目指すのはおこがましいので、今回はこれで良しといたします。

やりたいことができるようになるまで、まだまだ先は遠そうですが、チャレンジしたこと自体は楽しめました!
また懲りずにチャレンジいたします:bangbang:

参考にさせていただいた記事は、本当にものすごく参考になりました。ありがとうございます。

そして、ここまでご覧いただいた皆さまも、ありがとうございました。

11
7
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
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?