开始
开始
按照以下步骤在你的应用程序中集成Talk SDK:
本页上的代码片段使用SDK附带的内置UI展示了一个简单的轻触式集成。如果需要,您可以决定使用API并构建自己的UI,或者自定义内置UI的外观。详情请参见使用SDK和您自己的UI或自定义外观.
先决条件
除了亚博Zendesk说话订阅时,SDK有以下要求:
- 最低Android版本:API级别21 (Lollipop/5.0)
- 应用程序使用AndroidX
在Zendesk Support注册你的应用亚博
请客户支持团亚博队的Zendesk管理员执行以下操作:
- 在Zendesk Support注册您的应用程序。亚博告诉管理员一定要选中匿名为认证方法。SDK只支持匿名认证
- 向你提供他们注册应用时创建的应用ID和客户端ID
将管理员引用到在Zendesk Support中注册移动应用亚博在“支持帮助”。
App ID和Client ID用于初始化SDK。
正在添加Talk数字线路
请客户支持团亚博队的Zendesk管理员执行以下操作:
- 如果还不存在,添加一个Talk数字线
- 为您提供数字线路的昵称
将管理员引用到正在添加Talk数字线路在Talk help中。
添加SDK依赖项
在Android Studio中,打开build.gradleapp模块的文件(不是项目的)。
之前
依赖关系
节,添加以下内容存储库
部分:存储库{
maven{url“https://亚博zendesk.jfrog.io/zendesk/repo”}
}
在
依赖关系
节,添加以下依赖项:依赖关系{
实现(“亚博zendesk.talk: talk-android: 1.1.0”)
...
}
保存文件,然后通过选择将Talk SDK集成到项目中文件>用Gradle文件同步项目.
初始化SDK
中初始化Talk SDKonCreate
你的方法应用程序
类的子类,或活动
当应用程序启动时。
您需要在前面步骤中获得的App ID、客户端ID和数字线路昵称。
Java
亚博Zendesk.INSTANCE.init (
这一点,
“your亚博zendeskurl”,
“appID”,
“clientID”
);
芬兰湾的科特林
亚博Zendesk.INSTANCE.init (
这一点,
“your亚博zendeskurl”,
“appID”,
“clientID”
)
设置匿名身份
要设置匿名标识,请在与SDK交互之前添加以下语句。我们建议把它放在后面亚博Zendesk.INSTANCE.init(…)
.
Java
身份Identity = new anonymmouidentity . builder ()
. wimailidentifier("可选用户邮箱")
.withNameIdentifier("可选用户名")
.build ();
亚博Zendesk.INSTANCE。setIdentity(新AnonymousIdentity ());
芬兰湾的科特林
val identity = anonymouidentity . builder ()
. wimailidentifier("可选用户邮箱")
.withNameIdentifier("可选用户名")
.build ()
亚博Zendesk.INSTANCE.setIdentity(身份)
看到匿名身份在移动sdk中是如何工作的有关匿名标识生命周期的详细信息。
设置用户电子邮件和名称将通过向代理提供用户上下文来改善客户的用户体验。
注意:与其他Zendesk SD亚博K不同,Talk SDK不支持JWT身份验证。尝试使用JWT身份验证将导致失败。
创建SDK实例
要使用SDK的API,首先需要创建一个SDK实例。创建SDK之后的实例初始化和设置匿名身份.
Java
Talk Talk = Talk.create(亚博Zendesk.INSTANCE);
芬兰湾的科特林
val talk = talk .create亚博(Zendesk.INSTANCE)
我们建议保存说话
在应用程序中实例一个单例。
请注意:如果亚博Zendesk。实例
调用前未初始化Talk.create
,一个IllegalStateException
抛出。
检查代理的可用性
使用lineStatus
方法,以确定是否有任何代理可用于通话数字线路。我们建议在没有座席可用时隐藏呼叫按钮,以改善用户体验。
的lineStatus
方法接受数字行昵称并返回LineStatusResult
,它是一个Kotlin密封类,可以包含以下状态:
LineStatusResult。成功
—线路状态检查成功。包含两个属性:的名字 类型 描述 agentAvailable 布尔 当数字线路准备使用且至少有一个代理可用于该线路时为True;假的,否则 recordingConsent RecordingConsent 描述用户选择加入或退出通话记录的选项。如果最终用户不能更改选项,则该值为空。在此版本的SDK中,该属性始终为空 LineStatusResult.Failure.DigitalLineNotFound
—帐号中不存在数字线路昵称。LineStatusResult.Failure.Unknown
—不知道什么原因导致线路状态检查失败。
例子:
Java
TalkListenableFuture
job = TalkJavaCompat。lineStatus(谈话,“你的数字线路昵称”); 的工作。addListener(new TalkJavaCompatListener
() { @Override
onSuccess(@NonNull LineStatusResult result) {
if(LineStatusResult.Success的结果实例){
LineStatusResult。成功success = (LineStatusResult.Success) result;
如果(success.getAgentAvailable ()) {
phoneIcon.setVisibility (View.VISIBLE);
}其他{
phoneIcon.setVisibility (View.GONE);
}
}其他{
phoneIcon.setVisibility (View.GONE);
}
}
@Override
onError(@NonNull Throwable) {
//执行lineStatus时发生错误
}
});
请注意Java示例展示了使用SDK公共API的最简单方法。有关更高级的用法,请参见使用TalkJavaCompat.
芬兰湾的科特林
yourCoroutineScope。发射{
(说话时。lineStatus("your digital line nickname")) {
LineStatusResult。成功-> phoneIcon.visibility = View.VISIBLE
LineStatusResult。Failure -> phoneIcon。能见度=视图。走了
}
}
打电话
确定座席可用后,可以初始化呼叫。
SDK提供了一个内置的UI,用于检查所需的权限和调用代理。你可以用下面的语句运行它:
Java
说话。startCallSetupFlow(这个,“你的数字行昵称”,null);
芬兰湾的科特林
说话。startCallSetupFlow(context = this, digitalLine = "你的数字线昵称",successIntent = null)
要自定义内置权限或调用屏幕的外观,请参见自定义外观.
如果喜欢构建和使用自己的权限或调用屏幕ui,请参见使用SDK和您自己的UI.