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で直接呼び出してください。認証ガイドをご覧ください。