APIリファレンス
NetFUNNEL React Native Agentの関数、コールバック、レスポンス形式の完全なリファレンスです。
基本制御関数
基本制御は、サービスへの進入速度を制限します。開始関数が呼び出されるとキーが発行され、待機室が表示されます。終了関数が呼び出されるとキーが返却されます。
Netfunnel.nfStart
目的: 操作開始時にキーを発行し、待機室を表示します。
関数シグネチャ:
Netfunnel.nfStart(projectKey, segmentKey, callback)
パラメータ:
| パラメータ | 型 | 説明 |
|---|---|---|
projectKey | String | コンソールの基本制御プロジェクトキー |
segmentKey | String | コンソールの基本制御セグメントキー |
callback | Function | 待機室イベント処理のためのカスタムコールバック関数 |
戻り値: undefined
例:
Netfunnel.nfStart("{{PROJECT_KEY}}", "{{SEGMENT_KEY}}", function(response) {
// レスポンス処理 - コールバック関数セクションを参照
nfCallback(response);
});
コールバック処理: 詳細なレスポンス処理については、コールバック関数セクションを参照してください。
Netfunnel.nfStop
目的: 進入が完了した後、キーを返却します。
関数シグネチャ:
Netfunnel.nfStop(projectKey, segmentKey)
パラメータ:
| パラメータ | 型 | 説明 |
|---|---|---|
projectKey | String | コンソールの基本制御プロジェクトキー |
segmentKey | String | コンソールの基本制御セグメントキー |
戻り値: undefined
例:
Netfunnel.nfStop("{{PROJECT_KEY}}", "{{SEGMENT_KEY}}");
終了関数を実行しない場合、セグメントタイムアウト設定に従ってキーが自動的に返却されます(デフォルトタイムアウト: 20秒)。
区間制御関数
区間制御は、特定のアプリケーション区間内の同時ユーザー数を固定値で維持します。開始関数が呼び出されるとキーが発行されます。終了関数が呼び出されるまで、ユーザーはアクティブ区間にいると見なされ、キュー内の次のユーザーは許可されません。
Netfunnel.nfStartSection
目的: 区間制御のためのキーを発行し、待機室を表示します。
関数シグネチャ:
Netfunnel.nfStartSection(projectKey, segmentKey, callback)
パラメータ:
| パラメータ | 型 | 説明 |
|---|---|---|
projectKey | String | コンソールの区間制御プロジェクトキー |
segmentKey | String | コンソールの区間制御セグメントキー |
callback | Function | 待機室イベント処理のためのカスタムコールバック関数 |
戻り値: undefined
例:
Netfunnel.nfStartSection("{{PROJECT_KEY}}", "{{SEGMENT_KEY}}", function(response) {
// レスポンス処理 - コールバック関数セクションを参照
nfCallback(response);
});
コールバック処理: 詳細なレスポンス処理については、コールバック関数セクションを参照してください。
Netfunnel.nfStopSection
目的: ユーザーがアクティブ区間を終了する際にキーを返却します。
関数シグネチャ:
Netfunnel.nfStopSection(projectKey, segmentKey)
パラメータ:
| パラメータ | 型 | 説明 |
|---|---|---|
projectKey | String | コンソールの区間制御プロジェクトキー |
segmentKey | String | コンソールの区間制御セグメントキー |
戻り値: undefined
例:
Netfunnel.nfStopSection("{{PROJECT_KEY}}", "{{SEGMENT_KEY}}");
停止関数を実行しない場合、ユーザーはアクティブ区間に残っていると見なされ、次のユーザーの許可が遅延する可能性があります。
コールバック関数
基本/区間制御開始関数のコールバック関数(第3パラメータ)でNetFUNNELサーバーからのレスポンスを受信できます。レスポンス結果に応じてさまざまな処理ロジックを実行できます。
必須ステータス処理
次の3つのステータスを必ず対応する必要があります:
Success: 進入許可またはバイパスモードError: システムエラー発生NetworkError: ネットワーク接続の問題
Success、Error、NetworkError以外のステータス値は処理しなくてもサービスに影響はありません。
サンプルコールバック実装
function nfCallback(response) {
const { status, statusCode, message } = response;
switch(status) {
case 'Success':
// 進入またはバイパス応答を受信した場合、NetFUNNELを適用する前の既存のサービスロジックを実行します。
// ex - ページ移動、関数実行、APIリクエスト
break;
case 'Error':
// システムエラーが発生した場合、スムーズなサービス利用のために一般的にSuccessと同じように既存のサービスロジックを実行します。
// ex - ページ移動、関数実行、APIリクエスト
break;
case 'NetworkError':
// ネットワークエラーが発生した場合、既存のサービスロジックを実行するか、通知後に再度キューに進入するようにします。
// ex - ページ移動、関数実行、APIリクエスト、modal("ネットワークが不安定です。再試行しますか? Y/N");
break;
case 'Block':
// 進入状態がブロックの場合、ブロックを通知するか、何も処理しなくても構いません。
break;
case 'IpBlock':
// 繰り返しリクエストによりブロックされた場合、ブロックを通知するか、何も処理しなくても構いません。
break;
case 'Close':
// 待機室の閉じるまたはキャンセルボタンをクリックした場合、待機キャンセルを通知するか、何も処理しなくても構いません。
// ex - alert("待機をキャンセルしました。");
break;
default:
console.log(`[NF] status: ${status}, code: ${statusCode}, message: ${message}`);
}
}
レスポンスオブジェクトスキーマ
コールバックに渡されるresponseオブジェクトには、次のフィールドが含まれます:
| フィールド | 型 | 例 / 説明 |
|---|---|---|
status | String | Success / Error / NetworkError / Block / IpBlock / Close |
statusCode | Number | 200, 201, 300, 303, 500, 1001, 1002, 301, 302, 49xなど |
message | String | Success、Bypass、Express、Server Error、Network Timeoutなど |
key | String | 発行された進入キー(ID) |
例レスポンスオブジェクト:
// 成功レスポンス
{
status: "Success",
statusCode: 200,
message: "Success",
key: "key_12345"
}
// バイパスレスポンス
{
status: "Success",
statusCode: 300,
message: "Bypass",
key: "key_12345"
}
// ネットワークエラーレスポンス
{
status: "NetworkError",
statusCode: 1002,
message: "Network Timeout",
key: "key_12345"
}
ステータスコードリファレンス
すべての可能なステータスコードとその意味の完全なリファレンスです。
| status | statusCode | message | 説明 |
|---|---|---|---|
| Success | 200 | Success | キューを正常に通過してサービスに進入 |
| 300 | Bypass | サブスクリプション/ライセンスの期限切れ プロジェクト/セグメントの無効化 data-nf-error-bypass=trueに設定 | |
| 303 | Express | 進入成功時の動作 | |
| Error | 500 | Server Error | 存在しないプロジェクト/セグメントキーを使用 待機中にセグメント削除 サーバーエラーによるレスポンス欠落 |
| NetworkError | 1002 | Network Timeout | ネットワーク遅延 無効な待機室HTMLアドレス NetFUNNELサーバーダウン |
| Block | 301 | Block | セグメントブロック |
| IpBlock | 302 | Macro Block | ブラックリスト BotManager Basic有効化 |
| Close | 499 | Canceled Waiting Room | デフォルト待機室のキャンセルボタンクリック |
| 498 | Closed Blocking Room | ブロック室の閉じるボタンクリック | |
| 497 | Closed Macro Blocking Room | マクロブロック室の閉じるボタンクリック | |
| 496 | Closed PreWaiting Room | 事前待機室の閉じるボタンクリック | |
| 495 | Closed PostWaiting Room | 事後待機室の閉じるボタンクリック |
ベストプラクティス
集中型構成
// キーを1箇所に保存
const NETFUNNEL_CONFIG = {
projectKey: 'service_1',
segmentKey: 'segKey_8612'
};
// すべての場所で同じ構成を使用
Netfunnel.nfStart(
NETFUNNEL_CONFIG.projectKey,
NETFUNNEL_CONFIG.segmentKey,
callback
);
Netfunnel.nfStop(
NETFUNNEL_CONFIG.projectKey,
NETFUNNEL_CONFIG.segmentKey
);
完全なエラー処理
function handleNetFunnelResponse(response, businessLogic) {
switch (response.status) {
case 'Success':
businessLogic(); // ロジック進行
break;
case 'Error':
// システムエラー - サービス実行を維持するために継続
console.error('NetFUNNELシステムエラー:', response.message);
businessLogic();
break;
case 'NetworkError':
// ネットワーク問題 - 継続または再試行
console.log(`NetFUNNELネットワークエラー: ${response.message}`);
businessLogic(); // 継続または再試行ロジック実装
break;
case 'Block':
Alert.alert('サービス利用不可', 'このサービスは一時的に利用できません。');
break;
case 'IpBlock':
Alert.alert('アクセス拒否', 'この問題が続く場合は、サポートチームにお問い合わせください。');
break;
case 'Close':
// ユーザーがキャンセル - アクション不要
break;
}
}
キー返却
// 成功した操作後にキーを返却
try {
await performAction();
Netfunnel.nfStop(projectKey, segmentKey);
} catch (error) {
console.error('操作失敗:', error);
// エラー発生時にもキーを返却
Netfunnel.nfStop(projectKey, segmentKey);
}
関連ドキュメント
- 基本制御方法: 基本制御実装ガイド
- 区間制御方法: 区間制御実装ガイド
- 初期化オプションリファレンス: すべての初期化パラメータ
- トラブルシューティング: 一般的な問題と解決方法