概要
「初心者初心者書いてるけど、難しいやん!」のみなさまお待たせしました!
Messaging APIを取得した後、Nod-REDでLINE-botができるまで、PC初心者が解説。
私と同じ「JSON?トークン?それ誰やねん!」レベルの方向けですのでご安心を♪
準備物(検索してここまではやってね)
①LINEプロバイダ-・Messaging APIチャネル・bot設定
②Heroku・Node-REDの準備
③OpenWeatherMapのAPIキー取得
私はスクールでやりましたが、一般の方は頑張って検索!!
まず完成図
Nod-REDの全体図
ややこしそうに見えても超シンプル!中身も含めて一個ずつ解説するから安心してね!
解説①Switchコード
打ち間違いがないかよく確認!!
プロパティmsgの中身は 『payload.events[0].message.text』だよ!
解説②template
沖中・平岡・溝口は中身の名前を変えるだけ 「入れません」は中身が違うからよく見てね!
Switchと一緒で、プロパティmsgの中身は 『payload.events[0].message.text』だよ!
解説③function左側
コードの意味は後でじっくり考えるとして、まずは下記をコピーして使おう!
3つあるけど全部中身は同じコードです。
// LINEサーバーからの情報を「msg.line」に移動させる
msg.line = msg.payload;
// msg.payloadにメッセージ本体を入れる
msg.payload = msg.payload.events[0].message.text;
return msg;
解説④http request
ここは特に丁寧に解説するのでゆっくりやろう! まずは画像を確認!
3つとも中身は全く同じでOKです!
気になるURLの中身はこちら
URL内の『ここにOpenWeatherMapで取得したAPIキーを入力』にキーを入力
お察しの通りURL内の「Hiroshima」の所を知りたい都市名に打ち換えれるよ!!
でも今日は広島のままでやろう!!
解説⑤function右側
ここが最難関!! でも大丈夫!! まずはコピーして、意味は後日考えよう!!
ちなみに私もそうしたし、正直今も意味がよくわかってないですw
中身は
let text2 = "okinaka"
if (msg.payload.name === "Hiroshima" ){
text2 = "広島"
}
// http requestの結果を取得する
const result ="沖中さんご来店ありがとうございます☺\n"
+text2+ 'の無人店舗周辺の天気は\n'
+"『"+msg.payload.weather[0].icon+"』\n"
+ "最高気温はなんと\n"
+"『"+msg.payload.main.temp_max+ "℃』です\n"
+"とても暑くなってきましたね🌞\n"+
"そんな日にぴったりのおすすめレシピはこちらです!"
+"https://www.maxvalu.co.jp/recipe/";
// LINEサーバーからの内容を復元する
msg.payload = msg.line;
// 返信メッセージをhttp requestの結果にする
msg.payload.events[0].message.text = result;
return msg;
注1)〇〇〇さんご来店ありがとう~のところは3つそれぞれ書き換えてね!
3つのfunction上からそれぞれ 沖中・平岡・溝口 に(画像は1つめの沖中)
注2)2~3行目も都市名変えて検索した人は書き換えよう! 簡単簡単!!
if (msg.payload.name === "Hiroshima" ){
text2 = "広島"
解説⑥change
取得できるデータは英数字だから、それを日本語の表現に置き換える!!
↑ここのURLから引っ張った表です
https://www.sglabs.jp/openweathermap-api/
『01d』 っていう文字があったら 『快晴』 に書き換える という単純な指示。
画像に沿って『追加』ボタンで『change』内容を登録しよう!!
最後にチェック
ReplyMessageの中のシークレットとアクセストークン入れましたか?
デプロイボタン押しましたか?
おわりに
一緒に試してくれてありがとう! もしできなかったらコメント待ってます!
答える自信全くなしですが、超初心者コメントこそむしろウェルカムです♪
初心者同士、これからもお互い頑張ろう!!