Customer Service 全渠道提供了一套功能,扩展了 Dynamics 365 Customer Service Enterprise 的能力,使组织能够通过数字消息传递渠道与客户即时联系和互动。 访问 Customer Service 全渠道需要额外的许可证。 有关详细信息,请参见 Dynamics 365 Customer Service 定价概述和 Dynamics 365 Customer Service 定价计划页面。
设置身份验证令牌提供程序。
当使用回调函数作为参数调用身份验证令牌提供程序函数时,将使用有效的 JSON Web 令牌 (JWT) 字符串作为参数调用回调函数。
如果参数的 authTokenProvider 值不是函数,则此方法会引发错误。
重要
- 在 JWT 令牌的有效负载中,为 key 提供的
lwicontexts值应该是序列化的自定义上下文。 - 自定义上下文是键/值对的集合。 任何键只允许原始值。
- 自定义上下文的键必须与在 Customer Service 全渠道中为关联工作流创建的上下文变量相对应。
- 开始新聊天时,实时聊天小部件将调用身份验证令牌提供程序。
注释
应在引发 lcw:ready 事件 后调用实时聊天 SDK 方法。 您可以通过在窗口对象上添加自己的事件侦听器来监听此事件。
仅当为小部件启用了身份验证时,此 SDK 才适用。 若要为小组件启用身份验证,请参阅 创建聊天身份验证设置。
Syntax
Microsoft.Omnichannel.LiveChatWidget.SDK.setAuthTokenProvider(authTokenProvider);
参数
| 参数 | 类型 | Description |
|---|---|---|
| authTokenProvider | 功能 | 当使用回调函数作为参数调用时,获取 JWT 令牌并调用以 JWT 令牌作为参数的回调函数的函数 |
返回值
None
Example
示例令牌有效负载
{
"sub" : "87b4d06c-abc2-e811-a9b0-000d3a10e09e",
"lwicontexts" :"{\"msdyn_cartvalue\":\"10000\", \"msdyn_isvip\":\"false\"}",
"iat" : 1542622071,
"iss" : "contosohelp.com",
"exp" : 1542625672,
"nbf" : 1542622072
}
注释
在上面的有效负载中,对应于 key 的 lwicontexts 值应该是序列化的自定义上下文。
序列化自定义上下文中的键 msdyn_cartvalue 和 msdyn_isvip 对应于 Customer Service 全渠道中为关联工作流创建的上下文变量。
let payloadToEncrypt = {
"sub" : "87b4d06c-abc2-e811-a9b0-000d3a10e09e",
"lwicontexts" :"{\"msdyn_cartvalue\":\"10000\", \"msdyn_isvip\":\"false\"}",
"iat" : 1542622071,
"iss" : "contosohelp.com",
"exp" : 1542625672,
"nbf" : 1542622072
};
function convertToJwtToken(payloadToEncrypt){
// Ideally, you call your service to convert the payload to a valid JWT token
return Promise.resolve("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4N2I0ZDA2Yy1hYmMyLWU4MTEtYTliMC0wMDBkM2ExMGUwOWUiLCJsd2ljb250ZXh0cyI6IntcIm1zZHluX2NhcnR2YWx1ZVwiOlwiMTAwMDBcIiwgXCJtc2R5bl9pc3ZpcFwiOlwiZmFsc2VcIn0iLCJpYXQiOjE1NDI2MjIwNzEsImlzcyI6ImNvbnRvc29oZWxwLmNvbSIsImV4cCI6MTU0MjYyNTY3MiwibmJmIjoxNTQyNjIyMDcyfQ.r37z1M5rMyRYMOJ-rhyTRYFOgvl9N7KvTMueSFPkiuM");
}
window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
// Sets the auth-token provider
// Throws error if authTokenProvider is not a function
convertToJwtToken(payloadToEncrypt).then(function (jwtToken){
Microsoft.Omnichannel.LiveChatWidget.SDK.setAuthTokenProvider(function authTokenProvider(callback){
callback(jwtToken);
});
});
});
错误代码
使用此方法可能会出现以下错误。
| 错误代码 | 错误消息 |
|---|---|
| 2 | 身份验证令牌提供程序方法执行失败 |
| 3 | 身份验证令牌提供程序未提供任何令牌 |
| 4 | 身份验证令牌提供程序提供的令牌无效 |