IT業務効率化

Azure Logic Appを使ってノンコーディング天気botを作る

まずはOpenWeatherMapにアカウントを登録

https://openweathermap.org/api

APIの利用画面を進んでいくと上記画像の様なページに入ると思いますので、Sign upからアカウントを作成します。

メールの認証画面を終え、自身のページにいくと「API Keys」というタブがあるのでクリックします。そこにAPI Keyがあります。

見失ってしまった人はもう一度Sign upのページに行けば大丈夫です。

APIを実行してみよう

http://api.openweathermap.org/data/2.5/forecast?zip=152-0011,JP&cnt=1&APPID=My_api_key

APIキーを取得したら上記のAPIを実行してみます。

日本の郵便番号は「zip=000-0000,JP」で指定できます。cntで最も近い時間帯の予報を取得します。

結果は以下の様に返ってきました。

{
    "cod": "200",
    "message": 0,
    "cnt": 1,
    "list": [
        {
            "dt": 1584630000,
            "main": {
                "temp": 289.43,
                "feels_like": 287.76,
                "temp_min": 288.6,
                "temp_max": 289.43,
                "pressure": 1000,
                "sea_level": 1000,
                "grnd_level": 996,
                "humidity": 81,
                "temp_kf": 0.83
            },
            "weather": [
                {
                    "id": 500,
                    "main": "Rain",
                    "description": "light rain",
                    "icon": "10n"
                }
            ],
            "clouds": {
                "all": 100
            },
            "wind": {
                "speed": 3.72,
                "deg": 193
            },
            "rain": {
                "3h": 2.26
            },
            "sys": {
                "pod": "n"
            },
            "dt_txt": "2020-03-19 15:00:00"
        }
    ],
    "city": {
        "name": "Haramachi",
        "coord": {
            "lat": 35.6163,
            "lon": 139.6947
        },
        "country": "JP",
        "timezone": 32400,
        "sunrise": 1584564385,
        "sunset": 1584607895
    }
}

timezone,32400は(秒)で日本時間を指定できています。

Azure Logic Appで実行してみる

Azure Logic Appは一回の実行あたりの値段が ¥0.003136と非常に安価で実行できるため、これを利用してみます。

価格の詳細

  1. LogicAppの環境を作成
  2. いつ実行するか確定
  3. curlでデータを取得する
  4. twitter接続を利用する

まずはLogic Appの環境を作成します。

次にいつ実行するか決めます。Logic Appデザイナーを開き、スケジュールを選択します。

今回は毎朝7時に実行することにします。

次にHTTPリクエストを記述します。

そしてHTTPリクエストの結果は一度変数に格納する必要があります。理由は下記記事にてご覧ください。

Azure Logic AppでJSON・リストから値を取得するには?Logic App上でJSONもしくはlistからvalueを取得したい時は このときは取得したJSON、もしくはリストを一度...

一時的にresultに格納したJSONオブジェクトの中から天気だけを抜きます。

variables('result')['list'][0]['weather'][0]['main']

を式に記述します。

最後にtwitterと接続させます。

(投稿だけでなく、いろんなことができるので、twitterAPIでコーディングするよりも楽に扱えます。)

twitterに接続する時はログインを求められます。普通にログインしていただければOKです。

最後にこのLogicAppを「保存」してから「実行」します。すると。

一切コーディングすることなく、天気をtweetするbotが完成しました!!

参考

https://qiita.com/nownabe/items/aeac1ce0977be963a740

ABOUT ME
hirayuki
今年で社会人3年目になります。 日々体当たりで仕事を覚えています。 テーマはIT・教育です。 少しでも技術に親しんでもらえるよう、noteで4コマ漫画も書いています。 https://note.mu/hirayuki