PHPでWatch-IPを使う
digitload/watch-ip-sdk(Packagist、v0.1.1)は、cURLを基盤としたComposerパッケージでGET /v1/geoをラップします—Guzzleなど他のHTTPクライアントへの依存はありません。
インストール
PHP 8.1以降と、事実上すべてのPHPインストールに同梱されているcurl・json両拡張が必要です。
Composer
composer require digitload/watch-ip-sdkクイックスタート
他のサーバーサイドSDKと同様、PHPからGET /v1/geoを呼び出すということは、訪問者のブラウザではなく自分のサーバーから呼び出すことを意味するため、キーの許可オリジンチェックを満たすように明示的なoriginを渡してください。
PHP
use Digitload\WatchIP\WatchIP;
$client = new WatchIP('wip_pub_xxxxxxxx', origin: 'https://example.com');
$geo = $client->getGeo();
echo $geo['country'], ' ', $geo['city'], ' ', $geo['timezone'];エラー処理とタイムアウト
すべての失敗は\RuntimeExceptionを拡張したWatchIPErrorをスローします。PHPのException::getCode()はint型ですが、APIのエラーコードは文字列であるため、getCode()ではなくgetErrorCode()で読み取ってください。timeout(秒)はoptions配列内でincludeと並べて渡します。
PHP
use Digitload\WatchIP\WatchIP;
use Digitload\WatchIP\WatchIPError;
$client = new WatchIP('wip_pub_xxxxxxxx', origin: 'https://example.com');
try {
$geo = $client->getGeo(['timeout' => 5.0]);
} catch (WatchIPError $err) {
echo $err->getErrorCode(), ' ', $err->getStatus(), ' ', $err->getMessage();
}このSDKがカバーしていないもの
このパッケージが呼び出すのはGET /v1/geoのみです。IPルックアップ、メール検証、リスクチェックは別個のサーバー間エンドポイントで、まだPHPクライアントはありません—認証ガイドで説明されているのと同じ方法で認証しながら、cURLで直接呼び出してください。