API認証

FluenzR APIへの認証方法を学びます。

API認証

FluenzR APIはAPIキーを使用して認証します。

APIキーの取得

前提条件

  • アクティブなProプラン
  • アカウントの管理者権限

キーの生成

  1. FluenzRにログイン
  2. 設定 > APIに移動
  3. 新しいキーを生成をクリック
  4. キーにわかりやすい名前を付ける
  5. 表示されたキーをすぐにコピー

⚠️ 注意 キーは一度だけ表示されます。安全な場所に保管してください。紛失した場合は、新しいキーを生成する必要があります。

APIキーの使用

Authorizationヘッダー

各リクエストのAuthorizationヘッダーにAPIキーを含めます:

curl -X GET "https://api.fluenzr.co/v1/contacts" \
  -H "Authorization: Bearer flz_sk_your_api_key_here" \
  -H "Content-Type: application/json"

キーの形式

FluenzR APIキーは以下の形式に従います:

flz_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • flz: FluenzRプレフィックス
  • sk: シークレットキー
  • xxx...: 32文字の英数字

言語別の例

cURL

curl -X GET "https://api.fluenzr.co/v1/contacts" \
  -H "Authorization: Bearer flz_sk_abc123..." \
  -H "Content-Type: application/json"

JavaScript (fetch)

const response = await fetch('https://api.fluenzr.co/v1/contacts', {
  headers: {
    'Authorization': 'Bearer flz_sk_abc123...',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();

JavaScript (axios)

import axios from 'axios';

const client = axios.create({
  baseURL: 'https://api.fluenzr.co/v1',
  headers: {
    'Authorization': 'Bearer flz_sk_abc123...'
  }
});

const { data } = await client.get('/contacts');

Python (requests)

import requests

headers = {
    'Authorization': 'Bearer flz_sk_abc123...',
    'Content-Type': 'application/json'
}

response = requests.get(
    'https://api.fluenzr.co/v1/contacts',
    headers=headers
)

data = response.json()

PHP

<?php
$ch = curl_init();

curl_setopt_array($ch, [
    CURLOPT_URL => 'https://api.fluenzr.co/v1/contacts',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer flz_sk_abc123...',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($ch);
$data = json_decode($response, true);

Ruby

require 'net/http'
require 'json'

uri = URI('https://api.fluenzr.co/v1/contacts')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer flz_sk_abc123...'
request['Content-Type'] = 'application/json'

response = http.request(request)
data = JSON.parse(response.body)

APIキーの管理

既存のキーを表示

設定 > APIでキー一覧を確認:

名前作成日最終使用日アクション
本番用2025/01/012025/01/10取り消し
開発/テスト2025/01/052025/01/08取り消し

キーの取り消し

  1. キーの横にある取り消しをクリック
  2. 取り消しを確認

🚨 危険 取り消しは即時かつ取り消し不可です。このキーを使用しているすべてのアプリケーションが動作しなくなります。

ベストプラクティス

環境ごとに別のキー

環境キー権限
本番flz_sk_prod_xxxすべて
ステージングflz_sk_stag_xxxすべて
開発flz_sk_dev_xxx読み取り専用

キーを公開しない

❌ してはいけないこと:

  • Gitリポジトリにコミット
  • クライアントサイド(フロントエンド)に含める
  • メール/チャットで共有

✅ すべきこと:

  • 環境変数を使用
  • シークレット管理システムに保存
  • サーバーサイドのみで使用

環境変数

# .env (コミットしない)
FLUENZR_API_KEY=flz_sk_abc123...
// Node.js
const apiKey = process.env.FLUENZR_API_KEY;
# Python
import os
api_key = os.environ.get('FLUENZR_API_KEY')

認証エラー

401 Unauthorized

{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API key"
  }
}

考えられる原因:

  • APIキーがない
  • APIキーが無効
  • APIキーが取り消されている

403 Forbidden

{
  "success": false,
  "error": {
    "code": "FORBIDDEN",
    "message": "API access requires Pro plan"
  }
}

考えられる原因:

  • お試し期間の終了後にアカウントが一時停止されている(APIは利用不可)
  • 必要な権限のないAPIキー

セキュリティ

キーのローテーション

定期的にAPIキーを変更してください:

  1. 新しいキーを生成
  2. アプリケーションを更新
  3. すべて正常に動作することを確認
  4. 古いキーを取り消し

モニタリング

キーの使用状況を監視:

  • 「最終使用日」を定期的に確認
  • 未使用のキーを特定
  • 不審な使用を検出

侵害された場合

キーが侵害された場合:

  1. FluenzRでキーをすぐに取り消し
  2. 新しいキーを生成
  3. アプリケーションを更新
  4. ログを分析して悪意ある使用を検出
  5. 必要に応じてサポートに連絡