zavu-rules について
zavu-rules は、Zavu のマルチチャネルメッセージング API を使うためのスキルです。SDK、コマンドラインの利用、メッセージ規則、AI アシスタントからの API アクセスを説明します。
主な機能
- 01SMS、WhatsApp、Telegram、メール、音声に対応
- 02TypeScript、Python、Go、PHP、Ruby の SDK ガイド
- 03コマンドラインからの API 操作
- 04チャネル選択とフォールバックの規則
- 05認証とエラー処理の説明
活用シーン
- 01Zavu SDK を使ったメッセージ送信の実装
- 02チャネル選択と送信フォールバックの処理
- 03ターミナルからの API 操作
- 04AI アシスタントによる API 呼び出し
MCP 対応
AI アシスタントから API を直接実行する Zavu MCP サーバーの設定を説明します。`search_docs` と `execute` ツールを提供します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zavudev/ zavu-skills --skill zavu-rulesインストール後、Claude Code で/zavu-rulesを入力して読み込まれたか確認します。
詳細
Zavu API コンテキスト
Zavu は統合型のマルチチャネルメッセージング API です。1 つの API から SMS、WhatsApp、Telegram、Email、Instagram、Voice 経由でメッセージを送信でき、チャネルの自動選択とフォールバックに対応しています。
SDK エコシステム
| 言語 | パッケージ | インストール |
|---|---|---|
| TypeScript | @zavudev/sdk | npm add @zavudev/sdk |
| Python | zavudev | pip install zavudev |
| Go | github.com/zavudev/sdk-go | go get github.com/zavudev/sdk-go |
| PHP | zavudev/sdk-php | Composer |
| Ruby | zavudev/sdk-ruby | RubyGems |
ツール
| ツール | 用途 | インストール |
|---|---|---|
zavu CLI | ターミナルから API を操作します。Zavu Functions(Zavu Cloud 上で実行されるサーバーレス TypeScript)を管理します | npx zavudev@latest(インストール不要)、または npm install -g zavudev |
@zavudev/functions | Zavu Functions のランタイムパッケージです。defineAgent、defineTool、defineFunction の宣言型 API を提供します。 | 関数のランタイムにプリインストールされています — import { defineAgent } from "@zavudev/functions"(インストール不要)。 |
CLI は Zavu Functions を操作するための主要なインターフェースです。Zavu Cloud 上で実行されるサーバーレス TypeScript で、AI エージェントとツールハンドラーをコード内で宣言できます。詳細については functions スキルをご覧ください。
TypeScript の初期化
import Zavudev from '@zavudev/sdk';
const zavu = new Zavudev({
apiKey: process.env['ZAVUDEV_API_KEY'],
});
Python の初期化
import os
from zavudev import Zavudev
zavu = Zavudev(api_key=os.environ.get("ZAVUDEV_API_KEY"))
Python の非同期処理
from zavudev import AsyncZavudev
zavu = AsyncZavudev(api_key=os.environ.get("ZAVUDEV_API_KEY"))
Go の初期化
import "github.com/zavudev/sdk-go"
client := zavudev.NewClient(os.Getenv("ZAVUDEV_API_KEY"))
Ruby の初期化
require "zavudev"
client = Zavudev::Client.new(api_key: ENV["ZAVUDEV_API_KEY"])
PHP の初期化
use Zavudev\Client;
$client = new Client(apiKey: getenv('ZAVUDEV_API_KEY'));
認証
- 環境変数:
ZAVUDEV_API_KEY - キーのプレフィックス:
zv_live_(本番環境)、zv_test_(サンドボックス) - ヘッダー:
Authorization: Bearer <api_key> - 送信者の上書き用ヘッダー:
Zavu-Sender: <sender_id>
基本的な規約
- 電話番号:常に E.164 形式(
+14155551234) - チャネル:
auto、sms、sms_oneway、whatsapp、telegram、email、instagram、messenger、voice - メッセージの種類:
text、image、video、audio、document、sticker、location、contact、buttons、list、cta_url、request_contact_info、location_request、reaction、template - ページネーション:カーソルベースです。すべてのリストエンドポイントは
{ items: [...], nextCursor: string | null }を返します - 冪等性:メッセージの重複送信を防ぐため、送信時に
idempotencyKeyを使用してください
エラーハンドリング
TypeScript
import Zavudev, { APIError } from '@zavudev/sdk';
try {
await zavu.messages.send({ to: "+14155551234", text: "Hello" });
} catch (error) {
if (error instanceof APIError) {
console.error(error.status, error.message);
}
}
Python
from zavudev import Zavudev, APIError
try:
zavu.messages.send(to="+14155551234", text="Hello")
except APIError as e:
print(e.status_code, e.message)
主なビジネスルール
- WhatsApp の24時間ウィンドウ:自由形式のメッセージを送信するには、会話ウィンドウが開いている必要があります(過去24時間以内にユーザーからメッセージが届いている状態)。ウィンドウ外で会話を開始する場合は、テンプレートメッセージを使用してください。
- 認証によって上限は引き上げられますが、送信許可が付与されるわけではありません:アカウントは、作成後すぐにすべてのチャネルから任意の送信先へメッセージを送信できます。本人確認、支払い方法の登録、デポジットの決済、または有料プランにより、1日の上限が引き上げられます。上限に達すると
429 daily_limit_exceededが返されます。ビジネス認証(KYB)は10DLC登録の要件です。米国およびカナダ(+1)のすべてのSMS送信先で10DLC登録が必要です(403 ten_dlc_required)。送信に認証が必要なチャネルはなく、sms_onewayも例外ではありません。すべてのsms、sms_oneway、email、voiceメッセージは送信前に審査され、短時間保留される(ステータスはqueuedのままです)か、拒否されることがあります(失敗したメッセージにはRISK_BLOCKED、RISK_REJECTED、RISK_REVIEW_EXPIREDが設定されます)。拒否が繰り返されると、アカウントの送信が停止されます(403 sending_suspended)。send-messageスキルを参照してください。 - URL の確認:URL を含むSMS、一方向SMS、音声メッセージでは、URL の確認が必要です(
/v1/urlsで事前に確認してください。未確認の URL は確認中、メッセージがpending_url_verificationに保留されます)。メール、WhatsApp、Telegram、Instagram、Messenger のメッセージは確認されません。 - URL 短縮サービスはブロックされます:bit.ly、t.co などは常にブロックされます。完全な送信先 URL を使用してください。
- チャネル
auto:送信者が設定しているチャネルのうち、受信者のアドレスで受信できる最初のチャネルを、固定の優先順位に従って選択します。コストは考慮されません。コストに基づく連絡先ごとの選択は、チャネルsmartで送信するブロードキャストでのみ利用できます。 - フォールバック:WhatsApp で失敗した場合、テキストメッセージとテンプレートメッセージはSMSにフォールバックできます。Zavu がチャネルを選択する場合(
channelを省略またはautoに設定)はデフォルトで有効です。channelを明示的に設定した場合はデフォルトで無効ですが、fallbackEnabled: trueにすると有効になります。 - 音声エージェント:エージェントの
voice設定でenabled: trueにすると、電話の応答と発信が可能になります。発信には/v1/callsを使用し、文字起こしを取得するには/v1/calls/{callId}を使用してください。ライブキーが必要です。ai-agentスキルを参照してください。
MCP サーバー
AI アシスタントから API を直接実行するには:
claude mcp add zavudev --scope user \
-e ZAVUDEV_API_KEY=$ZAVUDEV_API_KEY -- npx -y @zavudev/sdk-mcp
利用可能なツール:search_docs(API ドキュメントを検索)、execute(認証済みクライアントに対して TypeScript を実行)。
CLI
zavudev/cli パッケージを使用すると、すべての API 操作にターミナルからアクセスできます。
レート制限
X-RateLimit-Remaining ヘッダーを確認してください。レスポンスヘッダーにアクセスするには、(TS).withResponse() または(Python).with_raw_response() を使用してください。
メッセージのステータス
queued -> sending -> sent -> delivered -> read(成功時)
queued -> sending -> failed(失敗時)
received(受信メッセージ)
pending_url_verification(確認待ちの URL を含むメッセージ)