Android SDK
Kliyenti nyepesi ya Kotlin na Jetpack Compose inayofungua gumzo la msaada la Respondo kama karatasi ya chini (bottom sheet) juu ya programu yako.
Mahitaji#
minSdk24 (Android 7.0), compileSdk 35.- Kotlin 2.x na Jetpack Compose (SDK huja na kiolesura cha Compose).
- JVM target 17.
SDK huvuta yenyewe tegemezi zake za mpito (Coroutines, kotlinx.serialization, OkHttp, Coil, Compose) na hutangaza ruhusa ya INTERNET katika manifest yake — huna cha kuongeza kwa mkono.
Usakinishaji#
Maktaba imechapishwa katika Maven Central kama ai.respondo:respondo-sdk. Hakikisha kuwa mavenCentral() ipo katika hazina zako (katika mradi mpya wa Android ipo hapo kwa chaguo-msingi), kisha ongeza tegemezi kwa kuratibu zake.
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
}dependencies {
implementation("ai.respondo:respondo-sdk:0.1.0")
}Uanzishaji#
Ita Respondo.init mara moja, weka RespondoChatHost() mara moja katika mti wako wa Compose, na fungua gumzo kwa kitufe chako mwenyewe.
import ai.respondo.sdk.Respondo
import ai.respondo.sdk.RespondoConfig
import ai.respondo.sdk.ui.RespondoChatHost
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Respondo.init(
context = this,
config = RespondoConfig(
agentId = "<agent-uuid>", // kutoka dashibodi
channelId = "<channel-uuid>", // si lazima
// baseUrl imeachwa -> https://api.respondo.ai
),
)
setContent {
MaterialTheme {
Box(modifier = Modifier.fillMaxSize()) {
Button(onClick = { Respondo.open() }) { Text("Support") }
RespondoChatHost() // SDK huonyesha karatasi hali ya gumzo inapokuwa OPEN
}
}
}
}
}Miito yote hupitia singleton Respondo. Ni idempotent, salama kutoka uzi wowote, na miito iliyofanywa kabla init haijakamilika huhifadhiwa na kutekelezwa baadaye.
Kutambua watumiaji#
Kwa chaguo-msingi kila mgeni ni asiyejulikana. Katika uzinduzi wa kwanza SDK hutengeneza visitor_id thabiti na kuihifadhi katika hifadhi ya ndani, hivyo mtumiaji anayerudi hupata mazungumzo yake tena. Hakuna ufunguo wa API wa kupachika — kila mazungumzo hulindwa na tokeni ya kipindi ya mazungumzo hayo, ambayo backend huitengeneza na kuisogeza mbele kwa kila ujumbe, hivyo mgeni asiyejulikana halazimiki kamwe kuthibitisha utambulisho upya.
Ita identify mara tu mtumiaji wako anapoingia. Hii huambatisha utambulisho wake halisi, hivyo historia yake humfuata kati ya vifaa na usakinishaji upya, na jina lake na barua pepe huonekana kando ya mazungumzo katika kikasha chako badala ya mgeni asiyejulikana.
userHash ni sahihi ambayo backend yako huikokotoa kutoka identity_secret ya wakala — HMAC-SHA256(secret, userId) (au barua pepe pale userId haipo), iliyosimbwa kama hex ya herufi ndogo. Siri hiyo huthibitisha kuwa utambulisho ni halisi, kwa hiyo lazima ikae kwenye backend yako pekee na haisafirishwi kamwe ndani ya programu. Angalia ukurasa wa Uthibitishaji wa utambulisho kwa fomula kamili na mifano ya upande wa seva.
import ai.respondo.sdk.RespondoIdentity
// userHash hutoka kwenye backend yako (HMAC-SHA256 juu ya userId) —
// usiikokotoe kamwe ndani ya programu.
Respondo.identify(
RespondoIdentity(
userId = session.userId,
email = session.email,
name = session.fullName,
userHash = session.respondoUserHash,
),
)
// Wakati wa kutoka: futa tokeni ya push, tengua kipindi, anza mgeni mpya asiyejulikana.
Respondo.clearPushToken()
Respondo.reset()Ikiwa hash haipo au si sahihi, hakuna kosa linaloibuka: backend humwacha mgeni kimya kimya bila utambulisho, gumzo huendelea kufanya kazi, na wewe hupoteza tu kiungo kati ya vifaa hadi hash sahihi itakapotolewa. Uthibitishaji hufanyika tu pale wakala ana identity_secret iliyowekwa — iache tupu wakati wa maendeleo, na userId / barua pepe hukubaliwa kama zilivyo.
Hali zinazofuatiliwa na callbacks#
Soma hali kwa mtindo tendaji kama StateFlow (nzuri kwa Compose) au kwa mtindo amrishi kupitia RespondoListener (nzuri kwa beji kwenye aikoni ya programu).
// Kwa mtindo tendaji: idadi ya ujumbe ambao haujasomwa kama StateFlow.
val unread by Respondo.unreadCount.collectAsState()
// Kwa mtindo amrishi: msikilizaji kwa beji na uchanganuzi.
Respondo.setListener(object : RespondoListener {
override fun onUnreadChanged(count: Int) { updateAppIconBadge(count) }
override fun onUrlRequested(url: String): Boolean = tryOpenInternally(url)
})Ufuatiliaji wa skrini#
Ripoti skrini ya sasa katika kila usogezaji ili vishawishi vya awali na ulengaji wa kiwango cha ukurasa viweze kulinganishwa nayo. Pitisha null kuifuta; katika kila mabadiliko kishawishi cha awali huthaminiwa upya kwa skrini mpya.
Respondo.setCurrentScreen("pricing")Hatua zinazofuata#
Sanidi Arifa za push kwa majibu ya maafisa yanayofika programu ikiwa imefungwa, na Uthibitishaji wa utambulisho kwa watumiaji walioingia. Uso kamili wa API, kifunga cha Fragment kwa hosti za XML, na utatuzi wa matatizo vimeelezwa katika mwongozo wa kuanza na Android SDK; misimbo chanzo ya SDK ipo wazi kwenye GitHub.