Watch-IP

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で直接呼び出してください。

関連ページ