Intercom 如何为已经是对讲机用户的访问者创建事件?
我们使用intercom web库和Intercom 如何为已经是对讲机用户的访问者创建事件?,intercom,intercom.js,Intercom,Intercom.js,我们使用intercom web库和intercom javasdk发送事件,因为有些事件可以从客户端发送,但有些需要从服务器端发送。以下是我们发送服务器端事件的方式: 当访问者触发某些操作时,例如登录尝试失败,我们从web库窗口.Intercom(“getVisitorId”)抓取visitorId,并将其发送到服务器 在服务器端,我们首先尝试查找访问者visitor.findByUserID(visitorId),如果它返回NotFoundException,那么我们尝试查找lead联系人
intercom java
sdk发送事件,因为有些事件可以从客户端发送,但有些需要从服务器端发送。以下是我们发送服务器端事件的方式:
- 当访问者触发某些操作时,例如登录尝试失败,我们从web库
抓取窗口.Intercom(“getVisitorId”)
,并将其发送到服务器visitorId
- 在服务器端,我们首先尝试查找访问者
,如果它返回visitor.findByUserID(visitorId)
,那么我们尝试查找leadNotFoundException
,如果它返回联系人。findByUserID(visitorId)
,那么我们尝试从服务器会话中查找当前登录的用户(我知道,旧技术),如果没有找到登录用户,我们无法创建事件,因为我们不知道用户是谁。如果上述任何步骤成功,我们可以使用返回的用户ID创建事件NotFoundException
visitorId
不再代表任何访问者/潜在客户,用户不再是l无法在服务器会话中找到ogged。因此我们不知道如何在服务器端识别发送事件的用户
这不是客户端事件的问题。因此,我的问题是,有没有办法在
intercom java
sdk端解决此问题?我通过在intercom web库加载时执行以下操作来解决此问题:
- 如果
不为空,请不要执行其他操作,否则继续下一步window.internetsettings.user\u id
- 使用
拨打电话,检查当前访客是否存在window.Intercom(“getVisitorId”)
- 如果存在访客,请不要执行任何其他操作,否则通过调用以下命令重新加载对讲机:
window.Intercom("shutdown");
window.Intercom("boot", window.intercomSettings)