API利用サンプル
Contact/Reborn APIの使い方とサンプルコード
API概要
Contact/Reborn APIは、シンプルなWebAPIとして提供されています。 Bearer認証を使用し、JSON形式でデータをやり取りします。
ベースURL: https://contact-reborn.net/api
メールチェック: POST /check
認証方法
APIの利用には、管理画面で発行したAPIトークンが必要です。 リクエストヘッダーに以下のように設定してください。
Authorization: Bearer YOUR_API_TOKEN
メールチェックAPI
メールアドレスがブロック対象かどうかを判定します。
エンドポイント
POST /api/check
リクエスト
{
"email": "check@example.com"
}
レスポンス(正常時)
{
"result": "block", // "block", "pass", "suspicious", "unknown"
"status": "success",
"message": ""
}
共通エラーレスポンス
429 Too Many Requests
API利用制限を超えた場合
{
"result": null,
"status": "failed",
"message": "API利用制限を超えました。しばらく待ってから再試行してください。"
}
401 Unauthorized
認証エラーの場合
{
"message": "Unauthenticated."
}
サンプルコード
実装例を参考にしてください
PHP cURLを使用した例
<?php
$ch = curl_init();
$data = [
'email' => 'test@example.com'
];
curl_setopt($ch, CURLOPT_URL, 'https://contact-reborn.net/api/check');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer YOUR_API_TOKEN'
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if ($result['status'] === 'success') {
if ($result['result'] === 'block') {
echo "このメールアドレスはブロック対象です。";
} else {
echo "このメールアドレスは使用可能です。";
}
} else {
echo "エラー: " . $result['message'];
}
?>
WordPress Contact Form 7と連携する例
// functions.phpに追加
add_filter('wpcf7_validate', 'check_email_with_contactreborn', 10, 2);
function check_email_with_contactreborn($result, $tags) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
$email = isset($data['your-email']) ? $data['your-email'] : '';
if ($email) {
$response = wp_remote_post('https://contact-reborn.net/api/check', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer YOUR_API_TOKEN'
],
'body' => json_encode(['email' => $email])
]);
if (!is_wp_error($response)) {
$body = json_decode(wp_remote_retrieve_body($response), true);
if ($body['status'] === 'success' && $body['result'] === 'block') {
$result->invalidate('your-email', 'このメールアドレスは使用できません。');
}
}
}
}
return $result;
}
Composer 公式PHPクライアントライブラリ
# インストール
composer require contactreborn/php-client
# 使用例
<?php
use ContactReborn\ContactRebornClient;
use ContactReborn\Enums\CheckResult;
$client = new ContactRebornClient('YOUR_API_TOKEN');
$result = $client->checkEmail('test@example.com');
if (CheckResult::isBlocked($result['result'])) {
echo "このメールアドレスはブロック対象です。";
} elseif (CheckResult::isSafe($result['result'])) {
echo "このメールアドレスは使用可能です。";
}
?>
HTTPステータスコード
コード | 説明 |
---|---|
200 OK | 正常に処理されました |
400 Bad Request | リクエストの形式が不正です |
401 Unauthorized | 認証に失敗しました(トークンが無効または期限切れ) |
429 Too Many Requests | レート制限を超えました |
500 Internal Server Error | サーバーエラーが発生しました |
注意事項
- APIトークンは安全に管理し、公開リポジトリにコミットしないでください
- レート制限はプランによって異なります
- 本番環境では適切なエラーハンドリングを実装してください