Help us understand the problem. What is going on with this article?

NETATMOのクライアント認証APIをaxiosでよぶ

More than 1 year has passed since last update.

NETATMOウェザーステーションが届いた!
デバイスの初期設定して管理画面からデータが自動でアップされている事を確認。
楽でいいねー

サーバーに登録されたデータ(気温や湿度)を取得するためにはAPIでtokenを取得しなければならない。

今回はそのtokenをaxiosの勉強も兼ねてjsで取得するコードを書いた。

ちなみに初めてaxiosを触ったけど、すごく手軽にAPIコールが書けて良いね!

公式のAPIリファレンス

クライアント認証
https://dev.netatmo.com/en-US/resources/technical/guides/authentication/clientcredentials

コード

シンプルなお手軽版

const axios = require('axios')
const qs = require('qs')

const axiosClient = axios.create({
  baseURL: 'https://api.netatmo.com',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
})

const auth = {
  client_id: 'xxxxx',
  client_secret: 'xxxxxxxxxxxxxxxx',
  username: 'xxx@xxxx,
  password: 'xxxxxx',
  grant_type: 'password'
}

axios({
  method: 'post',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  url: 'https://api.netatmo.com/oauth2/token',
  data: qs.stringify(auth)
})
  .then(respons => {
    console.log('Success')
    console.log(respons.data)
  })
  .catch(error => {
    console.log('Failure')
    console.log(error.response.config)
    console.log(error.response.data)
  })
  .then(() => {
    console.log('Complete')
  })

こんな書き方もできた。

const axiosClient = axios.create({
  baseURL: 'https://api.netatmo.com',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
})

axiosClient
  .post('/oauth2/token', qs.stringify(auth))
  .then(respons => {
    console.log('Success')
    console.log(respons.data)
  })
  .catch(error => {
    console.log('Failure')
    console.log(error.response.config)
    console.log(error.response.data)
  })
  .then(() => {
    console.log('Complete')
  })

インスタンス化した方が使い回せていいね。

ログにaccess_tokenが表示されれば成功。

次はサーバーから温度/湿度/二酸化炭素の値をとる記事を書く。

参考url

ikemura23
Androidアプリエンジニアです。 マイブームはFlutterとAWS
http://banbara-studio.hatenablog.com/
yumemi
みんなが知ってるあのサービス、実はゆめみが作ってます。スマホアプリ/Webサービスの企画・UX/UI設計、開発運用。Swift, Kotlin, PHP, Vue.js, React.js, Node.js, AWS等エンジニア・クリエイターの会社です。Twitterで情報配信中https://twitter.com/yumemiinc
http://www.yumemi.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away