的getUser不从GitHub上的网络聊天客户端4.0.4主网络聊天客户端

问题描述:

我今天下载了最后一个版本(4.0.4,从昨天)工作,并在我的网站部署英寸的getUser不从GitHub上的网络聊天客户端4.0.4主网络聊天客户端

我已经检测到Smooch.getUser()返回“不确定”当检测到新的用户,直到这个新的用户发送了第一条消息,但它不会在返回用户发生。

<script> 
    Smooch.on('ready', function(){ 
     console.log('the init has completed!'); 
    }); 

    var skPromise = Smooch.init({appId: 'myAppId'}); 

    skPromise.then(
     function() 
     { 
      var u = Smooch.getUser(); 
      console.log(u._id); 
     }); 
    ); 
</script> 

smooch_local.html:26未捕获的(以诺)类型错误:在smooch_local.html无法读取的不确定 财产 '_id':26 在匿名


但是,如果我在promise解决后发送任何消息,然后我尝试恢复userId,变量被定义。在Web Messenger聊天的以前的3.x.x版本中没有发生这种情况。

此代码返回一个有效的用户名:

<script> 
    Smooch.on('ready', function(){ 
     console.log('the init has completed!'); 
    }); 

    var skPromise = Smooch.init({appId: 'myAppId'}); 

    skPromise.then(
     function() 
     { 
      Smooch.sendMessage({type: 'text', text: 'x'}).then(
      function(){ 
      var u = Smooch.getUser(); 
      console.log(u._id); 
      }); 
     } 
    ); 
</script> 

这是控制台ouptut:

12:21:20.165的初始化已完成! 12:21:22.947 smooch_local.html:28 1102fdee2b7d3c2abb639cbe

有谁知道它是否是一个错误或4.x版的版本中的新功能?

感谢

这是预期的Web Messenger的4.x的行为 - 用户在初始化时不再自动创建。相反,用户创建被推迟到他们发送消息之后。这是在release notes提到V4.0.0

Web Messenger now uses a new optimized initialization sequence. This new sequence alters the timing of key events such as creating a new user or establishing a websocket connection.

或者,您可以pre-create与Web Messenger的被初始化之前userId用户,并使用login方法来初始化作为该用户,但是这可能会或可能根据您的使用情况不适合。

+0

感谢您的答复。现在我尝试恢复userId,如果未定义,则为新会话创建一个新的userId,而不分配JWT令牌。现在的问题是,我发出了一个** Smooch.destroy()**命令,并在此之后,Smooch.Init({APPID: 'myAppId' 用户名: 'newUserId'})。此时,Smooch发出一个错误消息:“TypeError:无法读取未定义的属性”推送“。感谢 – jlgordo

+0

这是一个应该被固定在V4.0.5中的错误(https://github.com/smooch/smooch-web/releases/tag/4.0.5) – michaels