前提・実現したいこと
Line Massaging APIとfirebaseを連携させ、お天気の情報のweb API(livedoor お天気サービス)から読み取りそれをユーザのメッセージに対して送信する。
該当のソースコード
Java
1async function handleEvent(event) { 2 if (event.type !== 'message' || event.message.type !== 'text') { 3 return Promise.resolve(null); 4 } 5 usersRef.set(event.message.text); 6 7 var x = event.message.text; 8 var obj = { type: 'text', text: x + 'が実行されました' }; 9 10 //LINEに対応するコマンドはここへ追加 11 switch (x) { 12 13 case 'おはよう': //お天気情報取得 14 const RSS = "http://weather.livedoor.com/forecast/rss/area/130010.xml"; // RSSのURLを指定 --- (*1) 15 const cli = require('cheerio-httpcli'); // cheerio-httpcli モジュールを取り込む 16 // ダウンロードして解析 17 cli.fetch(RSS, {}, (err, $, res) => { 18 // エラーがあればメッセージを表示 19 if (err) { console.log("失敗", err); return; } 20 // ダウンロードしたデータから必要な部分を取り出す --- (*2) 21 $("item > title").each((index, elem) => { 22 var e = $(elem); 23 console.log(e.text()); // テキスト部分を表示 24 obj = { 25 type: 'text', 26 text: "おはようございます。今週の天気です" > +e.text 27 }; 28 }); 29 }); 30 31 break; 32 33 case 'lon': 34 obj; 35 break; 36 37 case 'loff': 38 obj; 39 break; 40 41 //例外処理 42 default: 43 obj = { type: 'text', text: '不可能です。今後に期待して!!' }; 44 break; 45 } 46 //返信機能 47 return client.replyMessage(event.replyToken, obj); 48} 49exports.app = functions.https.onRequest(app);
試したこと
objにお天気サービスから読み取った情報(e.text)を代入し、出力しようとしたのすがうまくいきません。
firebaseのログには、読み取ったお天気情報が表示されているので、読み取り自体に問題はないはずです。
補足情報(FW/ツールのバージョンなど)
現在、プログラミング初心者の学生でして、ふとfirebase、LINE、Raspberry Piを用いてスマートホーム を作ろうと
思い立ち、学習しています。ご不明な点ございましたら、すぐに対応させていただきますので、何卒よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/21 05:09
2020/01/21 06:00
2020/01/21 06:40