识别用户
识别用户
一旦你初始化SDK,你需要告诉Zendesk如何识别用户亚博。
支持SDK(必选)
支持SDK提供了两种身份验证选项:“匿名”身份和JWT。有关详细说明,请参见设置标识在支持SDK文档中。
简而言之,创建一个AnonymousIdentity
或者一个JwtIdentity
,这取决于在Zendesk支持管理员的Mobile SDK页面上选择的身份验证类型:亚博
Identity = new anonymmouidentity . builder ()
.withNameIdentifier("Name") //名称是可选的
.withEmailIdentifier(“(电子邮件保护)// email是可选的
.build ();
或者:
Identity = new JwtIdentity("myJwtUserIdentifier");
对象上设置该对象亚博
单例模式:
亚博.实例.setIdentity(身份);
一旦你设定了身份,看支持引擎有关启动的说明MessagingActivity
用的实例SupportEngine
.
答疑机器人SDK(必选)
Answer Bot SDK与Support SDK共享其身份验证机制。与Answer Bot交互时使用相同的身份。按照支持SDK设置标识符。
一旦你设定了身份,看答疑机器人引擎有关启动的说明MessagingActivity
用的实例AnswerBotEngine
.
聊天SDK(可选)
与Support和Answer Bot SDK一样,Chat SDK支持匿名用户和使用JWT进行身份验证的用户。如果不使用JWT身份验证,将自动创建匿名标识。可以向聊天后端提供访问者信息VisitorInfo
用于匿名会话。
要为最终用户创建JWT标识,首先需要遵守JWTAuthenticator对象接口。符合接口的类必须包含getToken函数。这是您应该从服务中检索JWT的地方:
JwtAuthenticator = new JwtAuthenticator() {
@Override
public void getToken(JwtCompletion) {
//获取JWT令牌的代码
jwtCompletion。onTokenLoaded("你的JWT字符串");
//如果JWT令牌生成失败
jwtCompletion.onError
}
};
在你符合接口之后,将接口的一个实例传递给聊天实例的setIdentity函数:
Chat.INSTANCE.setIdentity (jwtAuthenticator);
聊天将在聊天连接到后端并验证身份验证令牌之前调用getToken。如果身份验证失败,聊天将作为匿名会话继续进行,并记录错误。如果SDK需要在聊天对话期间的任何时刻重新验证用户并且失败,则当前对话将结束,新对话将作为匿名会话开始。在这两种失败情况下,用户对参与聊天对话的任何其他方都将显示为未经过身份验证。
遵循这篇文章有关设置聊天身份验证的演练。或者你可以看看样例应用程序.
在聊天SDK中重置用户身份
您可以重置用户的标识,这将强制生成一个新的唯一标识符。这将导致它们与任何正在进行的聊天无关,并且本地缓存将被丢弃。重要的这也将导致代理不再看到以前的聊天记录,因为他们将被标识为新的匿名用户。
Chat.INSTANCE。resetIdentity(new CompletionCallback
() { @Override
public void onCompleted(无效结果){
//重置身份
}
});