识别用户

一旦你初始化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() {@Overridepublic void getToken(JwtCompletion) {//获取JWT令牌的代码jwtCompletion。onTokenLoaded("你的JWT字符串");//如果JWT令牌生成失败jwtCompletion.onError}};

在你符合接口之后,将接口的一个实例传递给聊天实例的setIdentity函数:

             
Chat.INSTANCE.setIdentity (jwtAuthenticator);

聊天将在聊天连接到后端并验证身份验证令牌之前调用getToken。如果身份验证失败,聊天将作为匿名会话继续进行,并记录错误。如果SDK需要在聊天对话期间的任何时刻重新验证用户并且失败,则当前对话将结束,新对话将作为匿名会话开始。在这两种失败情况下,用户对参与聊天对话的任何其他方都将显示为未经过身份验证。

遵循这篇文章有关设置聊天身份验证的演练。或者你可以看看样例应用程序

在聊天SDK中重置用户身份

您可以重置用户的标识,这将强制生成一个新的唯一标识符。这将导致它们与任何正在进行的聊天无关,并且本地缓存将被丢弃。重要的这也将导致代理不再看到以前的聊天记录,因为他们将被标识为新的匿名用户。

             
Chat.INSTANCE。resetIdentity(new CompletionCallback() {@Overridepublic void onCompleted(无效结果){//重置身份}});