sinch-sdks について
Sinch の各製品と言語に応じた SDK の選定と初期化を支援する開発スキルです。Node.js、Python、Java、.NET を扱い、製品対応状況や認証情報の範囲も案内します。
主な機能
- 01言語別の SDK と初期化資料の選択
- 02Node.js、Python、Java、.NET に対応
- 03SDK ごとの製品対応状況の確認
- 04プロジェクト用とアプリケーション用認証情報の区別
- 05複数製品向けクライアントの利用
活用シーン
- 01Sinch 製品と言語に合う SDK の選定
- 02複数 API に対応するクライアントの初期化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sinch/ skills --skill sinch-sdksインストール後、Claude Code で/sinch-sdksを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/sdk-init-dotnet.mdsdk-init-java.mdsdk-init-node.mdsdk-init-python.mdshared-policy.md詳細
Sinch SDK
概要
Sinch のすべての製品における SDK のインストールとクライアントの初期化を扱う、横断的なスキルです。適切な SDK を判断し、各言語の初期化コードを提示します。
認証の設定(認証情報、OAuth2、Basic 認証、署名付きリクエスト)については、sinch-authentication を参照してください。アプリ内通話 SDK(Browser、iOS、Android)については、sinch-in-app-calling を参照してください。
エージェントへの指示
ポリシーゲート
sinch-shared-policy@5(sha256:4864cf0fa8d6): 以下のポリシーダイジェストは、記載どおり拘束力を持ちます。実装または実環境での実行の前に、会話ごとに一度、Sinch 共有ポリシーの全文を読み込んでください。この正確な ID/バージョン/フィンガープリントがすでに読み込まれている場合は省略し、バージョンが新しいかフィンガープリントが異なる場合は読み込んでください。このスキルの正式な操作ルートは、「エージェントへの指示」および「リンク」セクションに記載されています。
Sinch ポリシーダイジェスト(拘束力あり):
- 会話ごとに一度、共有ポリシーを読み込みます。同じ ID/バージョン/フィンガープリントの重複したコピーは読み込みを省略します。
- リクエストとワークスペースから、製品、言語、リージョン、環境を推定し、真に必要な情報が不足している場合に限り、まとめて一度だけ質問します。リクエストまたはワークスペースで別の選択がされている場合、あるいはその言語や操作に対応する公式 SDK がない場合を除き、公式の Sinch SDK を優先します。
- コード生成の承認は、実行の承認ではありません。すべての操作を分類(読み取り専用/可逆/課金対象/破壊的)し、課金対象または破壊的な呼び出しの前に明示的な承認を得ます。
- Tier B の情報(エンドポイントパス、メソッド、フィールド名、列挙値、制限、Webhook ペイロード、署名アルゴリズム、SDK のシグネチャ)を使用する前に、現在のセッションで正確な正式ドキュメントを取得する必要があります。
- 同梱のスクリプト、リファレンス、サンプルは Tier C です。説明用であり、スキーマの根拠にはなりません。サンプルの値を本番環境のデフォルトとして扱ってはいけません。
- ルートが解決できない場合、または正式な情報の取得に失敗した場合は、解決手順に従って順番に進めます。取得済みのドキュメントを再検索し(要約ではなく生の内容を使用)、https://developers.sinch.com/llms.txt を確認し、ファーストパーティのリンクをたどり、もう一度再試行してから、安全側に倒して中止します。ドキュメントの URL を推測してはいけません。記憶、検索結果の抜粋、同梱ファイルで代用してはいけません。
- 取得した各情報源と、それが裏付けるフィールドや主張を対応付けたエビデンス台帳を保持します。
- すべてのポーリングと再試行に上限を設けます(バックオフ、ジッター、ハードキャップ)。課金対象または破壊的な操作を再試行する前に状態を確認し、タイムアウトは失敗ではなく不明として報告します。
- 検証レベル(lint → unit → mock contract → sandbox → live → end-to-end)を個別に報告します。HTTP 2xx は配信の証明にはなりません。実施していないレベルも明記します。
- 動作を担当する最小限のスキルセットのみを読み込みます。必要なスキルを利用できない場合は、そのスキル名を示し、指示を独自に補って続行せずに停止します。
ユーザーが言語またはプラットフォームを指定していない場合は、まず質問してください。SDK と初期化パターンは言語によって異なります。適切なリファレンスへのルートを特定するには、以下の表を使用してください。
信頼できる情報源 — 読み込む内容と、権威ある情報
このスキルには、信頼性が異なる2種類のコンテンツがあります。次の優先順位に従ってください。
developers.sinch.comの公式ドキュメント(権威ある情報)。 このスキル内の.mdドキュメントへのリンクは、正確なリクエスト/レスポンスのスキーマ、フィールド名とネスト構造、列挙値、署名/認証方式、制限を確認するための唯一の信頼できる情報源です。ペイロードを構築するコードの作成、署名の検証、コールバック/レスポンスの解析を行う前に、該当するリンク先のドキュメントを取得し、正確な形式を確認してください。ファーストパーティのdevelopers.sinch.comURL の取得は、セキュリティ/URL ポリシーで許可されています。ドキュメントの URL を作り上げたり、推測したり、パターンから類推したりしてはいけません。このスキルにそのまま記載されている URL、またはすでに取得したページ内のリンクをたどって到達した URL だけを取得してください。信頼できるドメインであっても、推測したパスが実在するとは限りません。- 同梱の
references/*.md(案内用の概要 — 権威ある情報ではありません)。 これらは概要を示し、適切な公式ドキュメントを指し示しますが、内容が古かったり、フィールドが省略されていたり、ネスト構造が簡略化されていたりする場合があります。何を構築し、どのドキュメントを開くべきか判断するために使用してください。リファレンスや SKILL.md の概要にあるフィールド名、ネスト構造、エンコーディング、列挙値を、最上位の公式ドキュメントで確認せずに製品コードへ転記してはいけません。概要にしか記載されていない詳細は未確認として扱い、その旨を伝えてください。
簡単なルール:コードを書くなら、ドキュメントを読み込んでください。 概要でしか確認していない正確なフィールド、ヘッダー、列挙値、エンコーディングを引用してはいけません。
SDK のインストール
| 言語 | パッケージ | インストール | 認証スコープ |
|---|---|---|---|
| Node.js | @sinch/sdk-core | npm install @sinch/sdk-core | Project + Application |
| Python | sinch | pip install sinch | Project + Application |
| Java | com.sinch.sdk:sinch-sdk-java | Maven dependency | Project + Application |
| .NET | Sinch | NuGet package | Project + Application |
アプリ内通話では、クライアント側の別個の SDKを使用します。@sinch/sdk-core ではありません。sinch-in-app-calling を参照してください。
SDK ごとの製品対応状況
すべての SDK がすべての製品に対応しているわけではありません。特定の製品に SDK を推奨する前に、表を確認してください。
| 製品 | Node.js | Java | .NET | Python |
|---|---|---|---|---|
| Conversation API | ✅ | ✅ | ⚠ | ⚠ |
| Voice API | ✅ | ✅ | ✅ | ✅ |
| Verification API | ✅ | ✅ | ✅ | ✅ |
| Numbers API | ✅ | ✅ | ✅ | ✅ |
| Number Lookup API | ✅ | ❌ | ❌ | ✅ |
| Elastic SIP Trunking | ✅ | ❌ | ❌ | ❌ |
| Fax API | ✅ | ❌ | ⚠ | ❌ |
| Provisioning API | ✅ | ❌ | ❌ | ❌ |
| 10DLC Registration | ❌ | ❌ | ❌ | ❌ |
✅ = 対応、⚠ = 一部対応/プレビュー、❌ = 利用不可(直接 HTTP を使用)
ユーザーが選択した SDK で製品がサポートされていない場合は、代わりに直接 HTTP 呼び出しを使用するよう案内してください。
SDK 初期化リファレンス
言語ごとの初期化コードについては、次のリファレンスを使用してください。
- Node.js: references/sdk-init-node.md
- Python: references/sdk-init-python.md
- Java: references/sdk-init-java.md
- .NET: references/sdk-init-dotnet.md
言語が不明な場合は、まず確認してください。SDK はトークンの更新を自動的に処理します。
主な概念
@sinch/sdk-core — プロジェクトスコープおよびアプリケーションスコープのすべての Sinch API をカバーする、統合 Node.js SDK です。個別のパッケージ(例:@sinch/voice、@sinch/verification)も利用できます。
sinch(Python) — プロジェクトスコープおよびアプリケーションスコープの API をカバーする Python SDK(v2.0.0 以降)です。
sinch-sdk-java — Maven Central から利用できる Java SDK(v2.0.0 以降)です。
プロジェクトスコープの初期化 — projectId、keyId、keySecret を使用します。Conversation、Numbers、Fax、EST、10DLC、Number Lookup、Provisioning 向けです。
アプリケーションスコープの初期化 — applicationKey、applicationSecret を使用します。Voice、Verification、In-App Calling 向けです。
マルチプロダクトクライアント — 1 つの SinchClient にプロジェクトとアプリケーションの両方の認証情報を指定すると、すべての API にアクセスできます。
Conversation のリージョン — Conversation API を使用する場合は、明示的に設定する必要があります。値:us、eu、br。Python SDK v2.0.0 以降および Java SDK v2.0.0 以降では必須です。Node.js および .NET では設定が推奨されます。(概要のみ — 実装前に、正式な Sinch Developer Docs のドキュメントで正確な名称、エンコーディング、列挙値を確認してください。)
共通パターン
- プロジェクトスコープのクイックスタート — プロジェクトの認証情報で
SinchClientを初期化します。各言語のリファレンスを参照してください。 - アプリケーションスコープのクイックスタート — アプリケーションのキーとシークレットで
SinchClientを初期化します。各言語のリファレンスを参照してください。 - マルチプロダクトクライアント — 両方の認証情報セットを 1 つのクライアントインスタンスに渡します。
- リージョン指定の Conversation API — 初期化時に
conversationRegionを設定します(Python/Java では必須、その他では推奨)。
注意点
- すべての SDK ですべてのプロダクトが利用できるわけではありません — SDK を推奨する前に、製品対応表を確認してください。サポートされていないプロダクトでは、直接 HTTP 呼び出しを使用してください。
- Conversation のリージョンは必須です —
conversation_regionを指定しないと、Python および Java SDK は実行時に失敗します。Node.js および .NET ではまだ必須になっていませんが、明示的に設定してください。 - Voice/Verification ではアプリケーションの認証情報を使用します — これらはプロジェクトの Access Keys とは別の認証情報セットです。
- SDK は OAuth2 トークンを自動更新します — SDK を使用する場合、トークンの有効期限を手動で処理する必要はありません。