はじめに
YuMake合同会社では、ハッカソンやアプリコンテストなど、多くのイベントへAPI協賛を行っています。また、株式会社KDDI Web Communicationsでは、Twilioという電話APIを提供し、同様に多くのイベントへ協賛しています。Twilioには、Twilio APIおよび、その他のAPIとの連携を容易にするためのnode.js環境「Twilio Functions」が準備されています。今回は、Twilio Functions上でYuMake気象情報APIにアクセスし、データを取得するサンプルを掲載します。気象データとTwilioを連携する場合などの参考にお使いください。
Twilio Functionsの作成
Twilio Functionsの作成は、こちらの記事が参考になります。記事と同様にして、Functionを作成します。テンプレートはBlankを選択し、pathはYuMakeと分かるように「/yumake」などと入力します。以下は、現在地の天気を取得する場合のサンプルです。
Function.js
const https = require('https');
exports.handler = function(context, event, callback) {
const HOST = '*********'; // YuMake APIへのURLを入力します
const LAT = '34.692800'; // 必要に応じてconstでパラメータを設定してください(これは位置情報ベースでアクセスする場合です)
const LON = '135.700537';
const APIKEY = '********'; // API KEYを設定してください
// 仕様書に則ってリクエストを書きます
let result = {};
const req = https.request(`https://${HOST}?lat=${LAT}&lon=${LON}&key=${APIKEY}`, (res) => {
res.on('data', (chunk) => {
result = JSON.parse(chunk);
});
res.on('end', () => {
console.log(`Aさんはいま、天気が ${result.weather} のところにいるようです。さあ、どこでしょうか!?`);
callback(null, result);
});
});
req.on('error', (e) => {
console.error(`problem with request: ${e.message}`);
callback(e.message);
});
req.end();
};
取得した他のデータと合わせて、ぜひ気象と別な情報の面白い組み合わせを考えてみてくださいね。
YuMake気象情報APIについては、コチラを参照してください。