뜨겁기 때문에 열사병 대책 BOT을 만들어 보았습니다.
11566 단어 RailsLINEmessagingAPIlinebot루비열사병
그래서 만들어 보았다.
친구 등록
앱 소개
할 일
今後増やしたいが、一旦
) 매시간 알림 · 지금 날씨 알림
어떻게 했는지
언어와 서버
이번에 언어는 Ruby, 서버는 heroku를 사용했습니다.
지인의 이하 기사를 참고로 했습니다.
"오늘 비가 내리는 짱"을 만들어 보자! 【초학자용】~Ruby on Rails에 의한 LINE bot 튜토리얼②~
나는 루비를 쓴 적이 없었지만 기사의 봇이라면 하루 만에 만들 수있었습니다.
자신을 위해 변경하는 데 일주일 정도 걸렸습니다.
매시간: OpenWeatherMap
기사의 시간별 날씨 데이터는 OpenWeatherMap 를 사용했습니다.
ID로 대략적으로 다음과 같이 분기를 만듭니다.
API_KEY = ENV["OPENWEATHER_API_KEY"]
BASE_URL = "http://api.openweathermap.org/data/2.5/weather"
〜(中略)〜
url = open( "#{BASE_URL}?q=Tokyo,jp&APPID=#{API_KEY}" )
res = JSON.parse( url.read , {symbolize_names: true} )
# 現在の天気
weather_id = res[:weather][0][:id].to_i
# weather_idを文字に変換
# 参考:https://www.sglabs.jp/openweathermap-api/
if weather_id == 800
weather = "晴天"
elsif weather_id == 801
weather = "晴れ"
elsif weather_id > 801
weather = "曇り"
elsif weather_id >= 200 && weather_id < 300
weather = "雷雨"
elsif weather_id >= 300 && weather_id < 400
weather = "霧雨"
elsif weather_id == 500 || weather_id == 501
weather = "雨"
elsif weather_id >= 502 && weather_id < 600
weather = "大雨"
elsif weather_id >= 600 && weather_id < 700
weather = "雪"
elsif weather_id >= 700 && weather_id < 800
weather = "霧"
end
# 気温、湿度取得
temp_max = res[:main][:temp_max].to_i - 273
humidity = res[:main][:humidity].to_i
# temp_maxまたはhumidityがnilでなければ
if temp_max >= 30 || humidity >= 80
if temp_max >= 33
word1 = "今、とても気温が高いね。\n不要な外出は控えて!"
elsif temp_max >= 30 && humidity >= 80
word1 = "今、気温も湿度も高いね。"
elsif temp_max >= 30
word1 = "今、気温が高いね。"
elsif humidity >= 80
word1 = "今、気温はそこそこだけど、湿度が高くてムシムシするね。"
end
# weather_idによって対策をメッセージに載せる。
if weather_id == 800 || weather_id == 801
word2 = "日差しが強いので、日陰に移動して直射日光を避け、コンクリートやアスファルトの上は避けましょう。\n熱中症にならないように気をつけてね(><)"
elsif weather_id > 801
word2 = "日差しが弱くても、熱中症にはなるからね!\n湿度が高いなら屋内だと、除湿機を使ってみましょう。\n外で風が弱ければ、扇子などで風を起こして体温の上昇を防ぎましょう。"
else
word2 = "こまめに水分補給して、熱中症にならないように気をつけてね(><)"
end
else
word1 = "気温も湿度も落ち着いてるけど、注意してね。"
word2 = "今日があなたにとっていい日になりますように(^^)"
end
puts "天気:#{weather}, 気温:#{temp_max}, 湿度:#{humidity}"
push =
"現在の天気は#{weather}だよ。\n#{word1}\n気温: #{temp_max}度\n湿度: #{humidity}%\n#{word2}"
덧붙여 일일의 날씨는 기사 의 방법을 유용해, Japan Weather Forecast xml(일본 날씨 예보) 배송 목록 를 사용했습니다.
열사병에 대한 지식
여기는 PT인 그녀에게 도움을 주었습니다.
열사병 지식과 대책 방법 요약
대책 방법도 알고 있으면 편리합니다.
앞으로 하고 싶은 일
해결 방법이 필요할 때 전달.
「들었을 때·정기 전달 등 어떤 방법이 좋은가」, 「대처 방법을 LINE으로 보내는 것이 정말로 좋은가」등 검토.
소득하고 싶은 지역을 선택할 수 있도록 하고 싶다.
도도부현에서 대략 47구분 정도는 할 수 있도록 하고 싶다.
사용자가 임의로 설정할 수 있도록 할 것인가, 대화형으로 들을 수 있도록 할까.
HP도 만든다.
WEB 페이지에서 주간이나, 시간마다의 날씨를 볼 수 있는 것이 있으면 좋을까.
광고도 붙이면, 여기에서 용돈이・・・w
Reference
이 문제에 관하여(뜨겁기 때문에 열사병 대책 BOT을 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hanlio/items/32d1a73870897d01996d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
API_KEY = ENV["OPENWEATHER_API_KEY"]
BASE_URL = "http://api.openweathermap.org/data/2.5/weather"
〜(中略)〜
url = open( "#{BASE_URL}?q=Tokyo,jp&APPID=#{API_KEY}" )
res = JSON.parse( url.read , {symbolize_names: true} )
# 現在の天気
weather_id = res[:weather][0][:id].to_i
# weather_idを文字に変換
# 参考:https://www.sglabs.jp/openweathermap-api/
if weather_id == 800
weather = "晴天"
elsif weather_id == 801
weather = "晴れ"
elsif weather_id > 801
weather = "曇り"
elsif weather_id >= 200 && weather_id < 300
weather = "雷雨"
elsif weather_id >= 300 && weather_id < 400
weather = "霧雨"
elsif weather_id == 500 || weather_id == 501
weather = "雨"
elsif weather_id >= 502 && weather_id < 600
weather = "大雨"
elsif weather_id >= 600 && weather_id < 700
weather = "雪"
elsif weather_id >= 700 && weather_id < 800
weather = "霧"
end
# 気温、湿度取得
temp_max = res[:main][:temp_max].to_i - 273
humidity = res[:main][:humidity].to_i
# temp_maxまたはhumidityがnilでなければ
if temp_max >= 30 || humidity >= 80
if temp_max >= 33
word1 = "今、とても気温が高いね。\n不要な外出は控えて!"
elsif temp_max >= 30 && humidity >= 80
word1 = "今、気温も湿度も高いね。"
elsif temp_max >= 30
word1 = "今、気温が高いね。"
elsif humidity >= 80
word1 = "今、気温はそこそこだけど、湿度が高くてムシムシするね。"
end
# weather_idによって対策をメッセージに載せる。
if weather_id == 800 || weather_id == 801
word2 = "日差しが強いので、日陰に移動して直射日光を避け、コンクリートやアスファルトの上は避けましょう。\n熱中症にならないように気をつけてね(><)"
elsif weather_id > 801
word2 = "日差しが弱くても、熱中症にはなるからね!\n湿度が高いなら屋内だと、除湿機を使ってみましょう。\n外で風が弱ければ、扇子などで風を起こして体温の上昇を防ぎましょう。"
else
word2 = "こまめに水分補給して、熱中症にならないように気をつけてね(><)"
end
else
word1 = "気温も湿度も落ち着いてるけど、注意してね。"
word2 = "今日があなたにとっていい日になりますように(^^)"
end
puts "天気:#{weather}, 気温:#{temp_max}, 湿度:#{humidity}"
push =
"現在の天気は#{weather}だよ。\n#{word1}\n気温: #{temp_max}度\n湿度: #{humidity}%\n#{word2}"
해결 방법이 필요할 때 전달.
「들었을 때·정기 전달 등 어떤 방법이 좋은가」, 「대처 방법을 LINE으로 보내는 것이 정말로 좋은가」등 검토.
소득하고 싶은 지역을 선택할 수 있도록 하고 싶다.
도도부현에서 대략 47구분 정도는 할 수 있도록 하고 싶다.
사용자가 임의로 설정할 수 있도록 할 것인가, 대화형으로 들을 수 있도록 할까.
HP도 만든다.
WEB 페이지에서 주간이나, 시간마다의 날씨를 볼 수 있는 것이 있으면 좋을까.
광고도 붙이면, 여기에서 용돈이・・・w
Reference
이 문제에 관하여(뜨겁기 때문에 열사병 대책 BOT을 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hanlio/items/32d1a73870897d01996d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)