LoginSignup
1
0

More than 3 years have passed since last update.

DartでカオナビAPIを使ってデータ取得

Posted at

カオナビのAPIでデータ取得する際、DartでのAPI通信に初挑戦した。

pubspec

pubspec.yaml には http を追加する必要がある。

pubspec.yaml
dependencies:
  http: ^0.12.0

追加したらターミナルでpub getを実行する。

$ pub get

コード

consumer_keyconsumer_secret はカオナビ管理者から取得しておき、値を置き換えよう。

main.dart
import 'package:http/http.dart';
import 'dart:convert';
import 'dart:async';

void main() async {
  String token = await getToken();
  String users = await getUser(token);
  print(jsonDecode(users)['data']);
}

Future <String> getToken() async {
  String url = 'https://api.kaonavi.jp/api/v1.0/get_token';
  var data = {
    'consumer_key': 'xxx',
    'consumer_secret': 'xxx'
  };
  // POST request
  Response response = await post(url, body: data);
  int statusCode = response.statusCode;
  print(statusCode);

  String body = response.body;
  print(body);

  String accessToken = jsonDecode(body)['data']['access_token'];
  print(accessToken);
  return accessToken;
}

Future <String> getUser(String accessToken) async {
  String url = 'https://api.kaonavi.jp/api/v1.0/user';
  var header = {
    'X-KAONAVI-TOKEN': accessToken
  };

  Response response = await post(url, headers: header);
  return response.body;
}

処理の流れ

  • アクセストークンを取得
  • トークンをもとにユーザーを取得

コード実行

ターミナルからmain.dartを実行する。

$ dart main.dart

処理が正常にいけば、カオナビのユーザー情報のjsonがログ表示される。

感想

追加ライブラリをpubspecで管理するやり方を覚えられた。
DartのAPI通信は初めて実装したが、思ったよりコード量が少なかった。
async/await は使いやすいが、もうちょっと実装に慣れる必要がある。

Dartいいね

1
0
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
1
0