Watch-IP

FlutterとDartでWatch-IPを使う

watch_ip_sdk(pub.dev、v0.1.2)は、FlutterアプリとプレーンなDartの両方に対応してGET /v1/geoをラップします。Flutter webでも動作するように、標準ライブラリのみのクライアントではなくpackage:httpを基盤としています。

インストール

Dart 3.0以降、または現行の任意の安定版Flutterチャンネルが必要です。package:httpに依存しています—dart:ioのHttpClientはFlutter webで利用できないため、他のSDKのゼロ依存という方針からの意図的な例外です。

Flutter

flutter pub add watch_ip_sdk

クイックスタート

実際のブラウザタブで実行されているFlutter webビルドは、Originを自動的に正しく送信します。ネイティブのiOS/Android/デスクトップビルドや、サーバー上のプレーンなDartではそうならないため、そこではoriginを明示的に渡してください。このSDKが必要とするのは公開可能キーだけです—配布するアプリにシークレットキーを埋め込むことは決してしないでください。

Dart

import 'package:watch_ip_sdk/watch_ip_sdk.dart';

final client = WatchIP('wip_pub_xxxxxxxx');
final geo = await client.getGeo();

print('${geo.country} ${geo.city} ${geo.timezone}');

エラー処理とタイムアウト

すべての失敗はstatusと安定したcodeを持つWatchIPErrorをスローします。timeout以内に完了しなかったリクエストは、コードnetwork_errorを持つエラーをスローします。

Dart

try {
  final geo = await client.getGeo(timeout: const Duration(seconds: 5));
} on WatchIPError catch (e) {
  print('${e.code} ${e.status} ${e.message}');
}

このSDKがカバーしていないもの

このパッケージが呼び出すのはGET /v1/geoのみです。IPルックアップ、メール検証、リスクチェック用のDartクライアントはまだありません—これらのエンドポイントにはシークレットキーが必要なため、アプリ自体からではなく、自分のバックエンドからpackage:httpで直接呼び出してください。認証ガイドをご覧ください。

関連ページ