<第10回Web会議日程>
2023年08月23日(水)19:00から
現在、「lambda_function.py」は、以下のようにLINEで入力した場合、
HotpepperAPIを利用し、おすすめのお店を1軒紹介します
同様の入力をした場合に、お店の名前に加え、お店の画像と
付加情報をLINEに返すよう処理を追加してください
※一部抜粋
「response_dict」から任意の情報を5つまで取得し、
それぞれ変数に代入する
1で取得したそれぞれの要素を [ ] で括り、
リスト型として、「to_text」に代入する
※一部抜粋
「to_text」が文字列だった場合の分岐を作成し、これまで通り、
リスト型「messages」内に、type、textのキーを持つ辞書を1つ定義する
「to_text」が文字列ではない場合、リスト型のため、
リストのインデックスと要素をまとめて取り出せるenumerateを利用して
for文で、「messages」への要素の追加をループ処理させる
for文内でif分で分岐を作成し、画像の(「jpg」で終わる)場合、
スト型「messages」内に、type、originalContentUrl、previewImageUrlの
キーを持つ辞書を定義する
画像ではなければ、type、textのキーを持つ辞書を定義する
<enumerate>
list.enumerate()
・リストに含まれている要素にインデックスを0から割り振り、「(インデックス, 要素)」というタプルにまとめた特殊なオブジェクトを返す
以下のように、LINEに位置情報を送信した場合、
HotpepperAPIを利用し、画像やその他の情報と合わせて
おすすめのお店を1軒紹介するよう処理を追加してください
これまでは、LINEに文字列を入力しその内容に合わせて、
Lambda内で処理を実行させ、LINEに応答を返していました。
今回は、LINEに位置情報を入力し、緯度経度の情報をもとに
HotpepperAPIにリクエストを送信し、おすすめの店舗の情報を
返すよう処理を修正していただきます。
LINEで入力された内容は、その他の情報と合わせて変数「event」に格納されています。
その中から、以下の処理で、画像内の緑下線の入力メッセージを取得して「from_text」に格納して利用していました。
■文字列が入力された場合の「event」の一部
位置情報が入力された場合は、以下の画像のようになります。
■位置情報が入力された場合の「event」の一部
青下線の「type」がlocationに変わり、
緑下線の「latitude」「longitude」に緯度経度の情報が格納されています。
そのため、青下線の「type」がtextだった場合は、
これまで通り、LINEで文字列が入力された場合の処理を実行し、
そうでない場合(青下線の「type」がlocation)の場合、
「latitude」「longitude」から緯度経度を取得するよう、処理を分岐してください
■「type」の判別
■緯度経度取得処理
hotpepper_functionのshop_search関数の引数は、「from_text」一つだけのため、
①で追加した分岐内で、「latitude」「longitude」の
2つの引数を引数とするshop_search_map関数を呼び出し、
結果を「to_text」に代入してください
hotpepper_function.py内に、「latitude」「longitude」を
引数とするshop_search_map関数を追加してください。
これまでのshop_search関数は、引数「keyword」をHotpepperAPIへの
リクエストパラメータ「hp_param」に定義し、
キーワードでおすすめ店舗を検索していました。
追加するshop_search_map関数では、緯度経度でおすすめ店舗の検索を行うため、
引数「keyword」ではなく、「latitude」「longitude」を
「hp_param」に定義し、HotpepperAPIにリクエストを送信し、
レスポンスを「to_text」に代入し、lambda_functionに返してください。
■緯度経度検索用パラメータ定義
改行コードで区切る処理や、要素数を確認する処理は不要です。
また、HotpepperAPIにリスエストを送信し、
レスポンスから情報を取得する処理は、そのまま利用して問題ございません。
位置情報は、以下のリンクを参考に、送信してください。
PC版のLINEでは送信できないため、携帯から送信してください。
▼位置情報 送信方法
https://guide.line.me/ja/services/location-information.html
デフォルトでは、現在地にピンが立っているため、
任意の場所にピンの位置を変更してください