Slide 1

Slide 1 text

Netatmo API × RubyͰ
 ΦϑΟεͷCO2ೱ౓ΛSlackʹ௨஌͢Δ 2018/11/30 BE ΋͘΋͘ձvol,1 Tomoki Ishimaru / @thom_i40

Slide 2

Slide 2 text

ࣗݾ঺հ • Tomoki Ishimaru • GMO AD Marketing Inc. • ϑϩϯτΤϯυ / αʔόʔαΠυ • Իָͱࣸਅ͕޷͖ @thom_i40

Slide 3

Slide 3 text

ຊ୊

Slide 4

Slide 4 text

Netatmo × Ruby
 ͰΦϑΟεͷCO2ೱ౓ΛՄࢹԽ

Slide 5

Slide 5 text

ͳͥCO2ೱ౓ΛՄࢹԽʁ

Slide 6

Slide 6 text

͖͔͚ͬ

Slide 7

Slide 7 text

https://www.businessinsider.jp/post-106379

Slide 8

Slide 8 text

CO2ೱ౓ͱਓͷύϑΥʔϚϯε • CO2ೱ౓ͷߴ͍؀ڥͰ͸ҙࢥܾఆͳͲͷ
 ύϑΥʔϚϯε͕௿Լ͢Δֶज़࿦จ͕ൃද • ްੜ࿑ಇলͱจ෦Պֶল͸ɺڭҭࢪઃ΍ݐங ෺ʹCO2ೱ౓ͷج४஋ΛఆΊ͍ͯΔ • CO2ೱ౓͕ݸਓͷύϑΥʔϚϯεʹӨڹ͢Δ

Slide 9

Slide 9 text

CO2ೱ౓ͷݟ͑ΔԽ͔Β࢝ΊΑ͏

Slide 10

Slide 10 text

Ͳ͏΍ͬͯʁ

Slide 11

Slide 11 text

Netatmo Weather Station

Slide 12

Slide 12 text

Netatmo Weather Station • ԰಺֎ͷ؀ڥΛܭଌ͢ΔϞδϡʔϧ • ؾԹ΍࣪౓, ؾѹ, ૽Ի, CO2ೱ౓ͳͲΛܭଌ • ෩ྔ΍ӍྔΛܭଌ͢Δ௥ՃϞδϡʔϧ • εϚʔτϑΥϯͱ࿈ܞՄೳ • ܭଌσʔλʹΞΫηεͰ͖ΔAPIΛఏڙ

Slide 13

Slide 13 text

CO2ೱ౓ΛSlack௨஌

Slide 14

Slide 14 text

Netatmo API require 'net/https'
 require 'json'
 require 'uri'
 
 token_uri = URI('https://api.netatmo.com/oauth2/token')
 
 res = Net::HTTP.post_form(
 token_uri,
 grant_type: 'password',
 client_id: 'xxx',
 client_secret: 'xxx',
 username: 'xxx',
 password: 'xxx',
 scope: 'read_station'
 )
 
 access_token = JSON.parse(res.body)['access_token']
 
 api_uri = URI.parse('https://api.netatmo.com/api/getstationsdata')
 
 http = Net::HTTP.new(api_uri.host, api_uri.port)
 http.use_ssl = true
 
 req = Net::HTTP::Post.new(api_uri.path)
 req.set_form_data(access_token: access_token)
 
 res = http.request(req)
 
 data = JSON.parse(res.body)
 
 puts JSON.pretty_generate(data)
 https://dev.netatmo.com/en-US/resources/technical/samplessdks/tutorials

Slide 15

Slide 15 text

Ruby͔ΒSlack΁ͷ௨஌ • slack-incoming-webhooks • ਺ߦͷεΫϦϓτͰSlack΁ͷ௨஌͕Մೳ • Slack APIͷAttachmentsʹ΋ରԠ https://github.com/shoyan/slack-incoming-webhooks

Slide 16

Slide 16 text

Ruby͔ΒSlack΁ͷ௨஌ https://github.com/shoyan/slack-incoming-webhooks

Slide 17

Slide 17 text

Google Sheets ΁ग़ྗ • google-drive-ruby • CO2ೱ౓ͷ܏޲΍׵ؾͷޮՌΛՄࢹԽ͢Δ • άϥϑͷੜ੒΍ڞ༗/ΞΧ΢ϯτ؅ཧ͕༰қ https://github.com/gimite/google-drive-ruby

Slide 18

Slide 18 text

Google Sheets ΁ग़ྗ https://github.com/gimite/google-drive-ruby

Slide 19

Slide 19 text

γεςϜߏ੒ Netatmoαʔόʔ ᶃ ᶄ ᶅ ᶆ Netatmo Weather Station Ruby

Slide 20

Slide 20 text

IFTTTͰ͸μϝͳͷʁ • ௨஌͕1࣌ؒ΄Ͳ஗ΕΔ͜ͱ͕͋ͬͨ • ௨஌ϑΥʔϚοτͷ੍ޚʹݶք͕͋Δ • ௨஌ͷ৚݅͝ͱʹΞϓϨοτͷ؅ཧ͕ඞཁ

Slide 21

Slide 21 text

·ͱΊ • Netatmo APIΛ࢖ͬͯCO2ೱ౓ΛՄࢹԽͨ͠ • RubyGemsΛ༻͍ͯ
 Slack΍Google Sheetsʹ΋ग़ྗͨ͠ • Slack௨஌Λ͖͔͚ͬʹ׵ؾ͢Δश׳͕෇͖ɺ
 CO2ೱ౓্͕͕Γʹ͍͘ΦϑΟε؀ڥΛ࡞Εͨ

Slide 22

Slide 22 text

https://techblog.gmo-ap.jp/2018/05/15/ruby_netatmo_api_slack/

Slide 23

Slide 23 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ @thom_i40