2
4

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 5 years have passed since last update.

Twilio Functionsを使って、YuMake気象情報APIのデータを取得する

2
Posted at

はじめに

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については、コチラを参照してください。

2
4
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
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?