このKotlin SDKを使用すると、JVMベースのアプリケーションでVonage APIを使用できます。 Vonageアカウントを作成する必要があります。
また、他の言語でサーバーSDKを提供します。
また、Android、iOS、JavaScript用のクライアント側SDKも提供しています。 Vonage Developer PortalのすべてのSDKと統合をご覧ください。
リリースはMaven Centralに公開されています。ビルドシステムの指示は、スニペットセクションにあります。ここからも入手できます。各バージョンのリリースノートは、Changelogにあります。
プロジェクトにSDKを含めるための指示は次のとおりです。
build.gradle
またはbuild.gradle.kts
ファイルに以下を追加します:
dependencies {
implementation( " com.vonage:server-sdk-kotlin:1.1.0 " )
}
pom.xml
ファイルの<dependencies>
セクションに以下を追加します。
< dependency >
< groupId >com.vonage</ groupId >
< artifactId >server-sdk-kotlin</ artifactId >
< version >1.1.0</ version >
</ dependency >
注:MavenやGradleなどの依存関係管理を備えたツールを使用することを強くお勧めします。
または、リポジトリをクローンしてJARファイルを自分で構築できます。
git clone [email protected]:vonage/vonage-kotlin-sdk.git
mvn install -P uberjar
uberjar
プロファイルは、リポジトリのルートにあるtarget
ディレクトリに含まれるすべての依存関係を備えたJARファイルを作成します。その後、これをプロジェクトのClassPathに含めることができます。
SDKは、開始するためにほとんど構成が必要ありません。
デフォルトの構成の場合、APIキーとシークレット、秘密キーとアプリケーションID、またはその両方を使用して、Vonageアカウント資格情報を指定するだけです。すべてのAPIとの互換性を最大限に活用するには、次のように両方の認証方法を指定することをお勧めします。
import com.vonage.client.kt.Vonage
val vonage = Vonage {
apiKey( API_KEY ); apiSecret( API_SECRET )
applicationId( APPLICATION_ID )
privateKeyPath( PRIVATE_KEY_PATH )
}
また、以下を設定することにより、環境変数を便利に使用することもできます。
VONAGE_API_KEY
アカウントAPIキーVONAGE_API_SECRET
アカウントAPI SecretVONAGE_SIGNATURE_SECRET
(高度、オプション)SMS APIを使用する際の署名されたリクエストの署名秘密VONAGE_APPLICATION_ID
使用するvonageアプリケーションのuuidVONAGE_PRIVATE_KEY_PATH
アプリケーションの秘密キーファイルへの絶対パスそして、次のようにクライアントをインスタンス化します
val vonage = Vonage { authFromEnv() }
基本URI(たとえば、統合テストを実行する)を構成し、HTTPリクエストタイムアウトをインスタンス化中にhttpConfig
でリクエストすることができます。
val vonageClient = Vonage {
authFromEnv()
httpConfig {
baseUri( " http://localhost:8976 " )
timeoutMillis( 15000 )
}
}
他のSDKと同様に、アーキテクチャはVonage
クラスに基づいており、HTTPクライアントの認証資格情報とオプションの高度な設定を定義しています。クラスには、サポートされているAPIごとにフィールドがあり、そのAPIで使用可能なメソッドを含むオブジェクトを返します。 SDKが他のSDKと異なるのは、メソッドのフラットリストではなく、CRUD操作にリソースベースのアプローチを使用することです。これらは、各APIリソースに対して定義された内部クラスであり、既存ExistingCall
、 ExistingSession
、 ExistingApplication
など、常にExisting
の接頭辞が付いています。一般的なルールとして、一意の識別子を持つリソースには、操作を実行するために使用される対応するExisting[Resource]
クラスがあります。 Java SDKの場合のように、そのリソースのIDを親クラスのメソッドに繰り返し渡すのではなく、そのリソース。これらのリソースクラスは、トップレベルのAPIクラスのメソッド呼び出しから構築されています。したがって、たとえば、 ExistingSession
ために、 client.video.session(SESSION_ID)
で作業するために、 client
Vonage
のインスタンスであり、 SESSION_ID
あなたが働くビデオセッションの一意の識別子です。
スニペットの検索可能なリストを含む、コードスニペットリポジトリに完全に実行可能なコードサンプルを見つけることができます。
SDKはKDOCで完全に文書化されているため、IDEから完全なドキュメントが必要です。 Intellijの「ソースをダウンロード」をクリックして、完全なドキュメントを取得する必要がある場合があります。または、javadoc.ioのようなサービスを使用してドキュメントを閲覧することもできます。これは、Maven Centralのアーティファクトからドキュメントをレンダリングすることができます。
特定のAPIのヘルプについては、サポートされているAPISセクションで提供されているリンクを使用して、開発者ポータルの関連ドキュメントを参照してください。完全性については、不一致があると思われる場合は、API仕様を参照することもできます。
Q:Vonage Java Server SDKの代わりにこのSDKを使用するのはなぜですか?
A:このKotlin SDKは、実際にはJava SDKに基づいており、Kotlinでのユーザーエクスペリエンスを向上させています。構文砂糖を追加するので、より慣用的なDSLのような構文、デフォルト値などのオプションで指定されたパラメーターなど、扱いにくいビルダーパターンを回避できます。さらに、「プラットフォームタイプ」(The !
)からより部分的に保護されているため、リクエストを作成するときに何があり、気にかけられないものをよりよく理解できます。 v1.0.0アナウンスのブログ投稿の違いについて詳しく読むことができます。
Q:スレッドの安全性に関するポリシーは何ですか?
A: Java Server SDKと同様に、一度にクライアントを使用するスレッドは1つだけです。マルチスレッド環境でSDKを使用したい場合は、各スレッドのVonage
の個別のインスタンスを作成するか、threadlocalインスタンスを使用します。
Q:SDKを依存関係として含める際に、プロジェクトに問題があります。これをトラブルシューティングするにはどうすればよいですか?
A:このブログ投稿をご覧ください。要するに、このSDKの推移的依存関係と衝突する矛盾する依存関係バージョンがプロジェクトにあるかもしれません。
Q:タイムアウトなどのHTTPリクエストの問題に遭遇しています。これを改善または報告するにはどうすればよいですか?
A:このライブラリは、Java SDKを下に使用しているため、Apache HTTPクライアント4を使用しているため、システムプロパティを使用してクライアントを構成するか、このSDKのhttpConfig
メソッドをVonage
クラスで使用して、より微細に制御できます。基礎となるクライアントに問題があると思われる場合は、Vonage Java SDKリポジトリの環境(JVMランタイムバージョン、SDKバージョン、オペレーティングシステムなど)を含む、最小限の再現可能な例で問題を提起してください。
Q:私の問題がSDKにあるかどうかはわかりません。どうすれば助けを得ることができますか?
A:連絡先情報を含むサポートページをご覧ください。
このライブラリへの貢献!
新しい機能を追加する予定がある場合は、最初にお話しすることをお勧めします。それ以外の場合、ライブラリに関するバグレポート、バグ修正、フィードバックは常に高く評価されています。また、次のチャネルからお問い合わせください。