Kotlin SDK นี้ช่วยให้คุณใช้ VONAGE APIs ในแอปพลิเคชันที่ใช้ JVM ใด ๆ คุณจะต้องสร้างบัญชี Vonage
นอกจากนี้เรายังให้เซิร์ฟเวอร์ SDKs ในภาษาอื่น ๆ :
นอกจากนี้เรายังเสนอ SDK ฝั่งไคลเอ็นต์สำหรับ Android, iOS และ JavaScript ดู SDKs และการบูรณาการทั้งหมดของเราในพอร์ทัล Vonage Developer Portal
เผยแพร่จะเผยแพร่ไปยัง Maven Central คำแนะนำสำหรับระบบบิลด์ของคุณสามารถพบได้ในส่วนตัวอย่าง พวกเขายังมีให้บริการจากที่นี่ บันทึกย่อสำหรับแต่ละเวอร์ชันสามารถพบได้ใน changelog
นี่คือคำแนะนำสำหรับการรวม SDK ในโครงการของคุณ:
เพิ่มสิ่งต่อไปนี้ในไฟล์ build.gradle
หรือ build.gradle.kts
:
dependencies {
implementation( " com.vonage:server-sdk-kotlin:1.1.0 " )
}
เพิ่มส่วนต่อไปนี้ในส่วน <dependencies>
ของไฟล์ pom.xml
ของคุณ:
< dependency >
< groupId >com.vonage</ groupId >
< artifactId >server-sdk-kotlin</ artifactId >
< version >1.1.0</ version >
</ dependency >
หมายเหตุ : เรา ขอแนะนำอย่างยิ่ง ให้คุณใช้เครื่องมือที่มีการจัดการการพึ่งพาเช่น Maven หรือ Gradle
หรือคุณสามารถโคลน repo และสร้างไฟล์ jar ด้วยตัวเอง:
git clone [email protected]:vonage/vonage-kotlin-sdk.git
mvn install -P uberjar
โปรไฟล์ uberjar
จะสร้างไฟล์ JAR ที่มีการอ้างอิงทั้งหมดที่รวมอยู่ในไดเรกทอรี target
ที่รูทของ repo จากนั้นคุณสามารถรวมสิ่งนี้ไว้ใน ClassPath ของโครงการของคุณ
SDK ต้องการการกำหนดค่าน้อยมากในการเริ่มต้น
สำหรับการกำหนดค่าเริ่มต้นคุณเพียงแค่ต้องระบุข้อมูลรับรองบัญชี VONAGE ของคุณโดยใช้คีย์ API และความลับคีย์ส่วนตัวและรหัสแอปพลิเคชันหรือทั้งสองอย่าง สำหรับความเข้ากันได้สูงสุดกับ 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 Secret บัญชีของคุณVONAGE_SIGNATURE_SECRET
- (ขั้นสูง, เป็นตัวเลือก) ความลับลายเซ็นสำหรับคำขอที่ลงนามเมื่อใช้ SMS APIVONAGE_APPLICATION_ID
- UUID ของแอปพลิเคชัน VONAGE ที่คุณต้องการใช้VONAGE_PRIVATE_KEY_PATH
- เส้นทางสัมบูรณ์ไปยังไฟล์คีย์ส่วนตัวสำหรับแอปพลิเคชันจากนั้นสร้างอินสแตนซ์ลูกค้าด้วย:
val vonage = Vonage { authFromEnv() }
คุณสามารถกำหนดค่า URI พื้นฐาน (ตัวอย่างเช่นการทดสอบการรวม) และการหมดเวลาร้องขอ HTTP ด้วย httpConfig
ในระหว่างการสร้างอินสแตนซ์เช่น SO:
val vonageClient = Vonage {
authFromEnv()
httpConfig {
baseUri( " http://localhost:8976 " )
timeoutMillis( 15000 )
}
}
เช่นเดียวกับ SDKs อื่น ๆ ของเราสถาปัตยกรรมจะขึ้นอยู่กับคลาส Vonage
ซึ่งกำหนดข้อมูลรับรองการตรวจสอบสิทธิ์และการตั้งค่าขั้นสูงที่เป็นตัวเลือกสำหรับไคลเอนต์ HTTP คลาสมีฟิลด์สำหรับ API ที่รองรับแต่ละรายการซึ่งส่งคืนวัตถุที่มีวิธีการที่มีอยู่ใน API นั้น ในกรณีที่ SDK แตกต่างจาก SDK อื่น ๆ คือใช้วิธีการที่ใช้ทรัพยากรสำหรับการดำเนินการ CRUD แทนที่จะเป็นรายการวิธีการแบน เหล่านี้เป็นคลาสภายในที่กำหนดไว้สำหรับแต่ละทรัพยากร API และมักจะถูกนำหน้าด้วย Existing
- ตัวอย่างเช่น ExistingCall
ExistingSession
ExistingApplication
ฯลฯ เป็นกฎทั่วไปทรัพยากรที่มีตัวระบุที่ไม่ซ้ำกันมีคลาส Existing[Resource]
ทรัพยากรนั้นแทนที่จะส่งผ่านรหัสของทรัพยากรนั้นซ้ำ ๆ ไปยังวิธีการในคลาสพาเรนต์เช่นเดียวกับกรณีใน Java SDK คลาสทรัพยากรเหล่านี้สร้างขึ้นจากการเรียกวิธีการในคลาส API ระดับบนสุด ตัวอย่างเช่นในการทำงานกับ ExistingSession
คุณจะทำ: client.video.session(SESSION_ID)
โดยที่ client
เป็นอินสแตนซ์ของ Vonage
และ SESSION_ID
เป็นตัวระบุที่ไม่ซ้ำกันของเซสชันวิดีโอที่คุณต้องการทำงานด้วย
คุณสามารถค้นหาตัวอย่างรหัสที่เรียกใช้งานได้อย่างสมบูรณ์ในที่เก็บรหัสตัวอย่างของรหัสรวมถึง รายการตัวอย่างที่ค้นหาได้
SDK ได้รับการบันทึกไว้อย่างสมบูรณ์ด้วย KDOCs ดังนั้นคุณควรมีเอกสารที่สมบูรณ์จาก IDE ของคุณ คุณอาจต้องคลิก "แหล่งดาวน์โหลดแหล่งที่มา" ใน Intellij เพื่อรับเอกสารฉบับเต็ม หรือคุณสามารถเรียกดูเอกสารโดยใช้บริการเช่น Javadoc.io ซึ่งแสดงเอกสารให้คุณจากสิ่งประดิษฐ์บน Maven Central
สำหรับความช่วยเหลือเกี่ยวกับ API ใด ๆ โปรดดูเอกสารที่เกี่ยวข้องในพอร์ทัลนักพัฒนาของเราโดยใช้ลิงก์ที่ให้ไว้ในส่วน APIs ที่รองรับ เพื่อความสมบูรณ์คุณสามารถปรึกษาข้อกำหนด API หากคุณเชื่อว่ามีความแตกต่างใด ๆ
ถาม: ทำไมต้องใช้ SDK นี้แทน Vonage Java Server SDK?
ตอบ: Kotlin SDK นี้ขึ้นอยู่กับ Java SDK เพื่อปรับปรุงประสบการณ์ผู้ใช้ใน Kotlin มันเพิ่มน้ำตาลวากยสัมพันธ์ดังนั้นคุณสามารถหลีกเลี่ยงรูปแบบตัวสร้างที่ยุ่งยากในการสนับสนุนไวยากรณ์ DSL ที่มีลักษณะคล้ายสำนวนที่มีสำนวนมากขึ้นพารามิเตอร์ตัวเลือกและชื่อที่มีค่าเริ่มต้น ฯลฯ นอกจากนี้คุณยังได้รับการป้องกันบางส่วนจาก "ประเภทแพลตฟอร์ม" (The !
) ดังนั้นคุณจึงมีความคิดที่ดีกว่าว่าอะไรคือสิ่งที่และไม่สามารถทำได้เมื่อสร้างคำขอ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับความแตกต่างในโพสต์บล็อกการประกาศ v1.0.0
ถาม: นโยบายของคุณเกี่ยวกับความปลอดภัยของด้ายคืออะไร?
ตอบ: เช่นเดียวกับ Java Server SDK มีเพียงหนึ่งเธรดที่ควรใช้ไคลเอนต์ทีละตัว หากคุณต้องการใช้ SDK ในสภาพแวดล้อมแบบมัลติเธรดให้สร้างอินสแตนซ์แยกต่างหากของ Vonage
สำหรับแต่ละเธรดหรือใช้อินสแตนซ์ ThreadLocal
ถาม: ฉันมีปัญหากับโครงการของฉันเมื่อรวม SDK เป็นการพึ่งพา ฉันจะแก้ไขปัญหานี้ได้อย่างไร?
ตอบ: โปรดดูโพสต์บล็อกนี้ ในระยะสั้นคุณอาจมีเวอร์ชันการพึ่งพาที่ขัดแย้งกันในโครงการของคุณซึ่งขัดแย้งกับการพึ่งพาสกรรมกริยาของ SDK นี้
ถาม: ฉันพบปัญหาการร้องขอ HTTP เช่นหมดเวลา ฉันจะแก้ไขหรือรายงานสิ่งนี้ได้อย่างไร?
ตอบ: เนื่องจากไลบรารีนี้ใช้ Java SDK ใต้ซึ่งจะใช้ Apache HTTP Client 4 คุณอาจสามารถใช้คุณสมบัติระบบเพื่อกำหนดค่าไคลเอนต์หรือใช้วิธี httpConfig
ของ SDK ในคลาส Vonage
สำหรับการควบคุมที่ละเอียดยิ่งขึ้น หากคุณเชื่อว่ามีปัญหากับไคลเอนต์พื้นฐานโปรดเพิ่มปัญหาด้วยตัวอย่างที่ทำซ้ำได้น้อยที่สุดรวมถึงรายละเอียดของสภาพแวดล้อมของคุณ (เวอร์ชัน JVM Runtime เวอร์ชัน SDK ระบบปฏิบัติการ ฯลฯ ) ในที่เก็บ Vonage Java SDK
ถาม: ฉันไม่แน่ใจว่าปัญหาของฉันอยู่กับ SDK หรือไม่ ฉันจะขอความช่วยเหลือได้อย่างไร?
ตอบ: โปรดดูหน้าสนับสนุนของเรารวมถึงข้อมูลการติดต่อ
เรามีส่วนร่วมในห้องสมุดนี้!
เป็นความคิดที่ดีที่จะพูดคุยกับเราก่อนหากคุณวางแผนที่จะเพิ่มฟังก์ชั่นใหม่ ๆ มิฉะนั้นรายงานข้อผิดพลาดการแก้ไขข้อผิดพลาดและข้อเสนอแนะเกี่ยวกับไลบรารีจะได้รับการชื่นชมเสมอ นอกจากนี้คุณยังสามารถติดต่อเราผ่านช่องทางต่อไปนี้: