设置用户ID
最新更新:2024-11-06

设置用户ID

GPTBots 支持开发者在不同渠道(如:网站、APP 、LiveChat )为 Bot 用户设置唯一身份ID,通过该用户ID(UserId) 可以在不同渠道之间进行用户 身份关联,实现跨渠道用户身份合并、 通过 Tools 实现业务业务查询、维护用户属性和聊天记录等。具体应用场景如下:

  • Tools: AI Bot 在调用 Tools 向开发者业务 API 发起请求时,会将 UserId 放在 Header 中,便于开发者识别用户身份。
  • 用户属性:开发者设置 UserId 后,用户属性信息将被归属于该 UserId。
  • 对话日志:开发者设置 UserId 后,用户与 Bot 的对话日志记录将被归属于该 UserId。
  • 对话日志:开发者设置 UserId 后,用户与 Bot 的对话日志记录将被归属于该 UserId。
  • 事件回调: 开发者设置 UserId 后,在 iframe/widget 中所产生的事件回调上报至GA4/webhook 时会携带该信息。

⚠️用户ID(UserId) 应是用户在开发者业务系统内的唯一身份标识。通过该 UserId 可以查询到该用户的 VIP 等级、用户标签、用户订单等业务数据信息。

API 设置用户ID

开发者通过 API 集成 Bot 能力为用户提供服务时,通常需要为不同的用户创建一个对话 ID(conversation_id) 作为提供 AI 服务的基础载体,创建converstation_id 的前提条件是必须设置一个用户ID 方可创建成功。

curl -X POST https://api.gptbots.ai/v1/conversation \ -H 'Authorization: Bearer your_apikey' \ -H 'Content-Type: application/json' \ -d '{ "user_id": "your_user_id" // 说明:支持 Bot 开发者设置自定义用户ID }'
          curl -X POST https://api.gptbots.ai/v1/conversation \ 
  -H 'Authorization: Bearer your_apikey' \ 
  -H 'Content-Type: application/json' \ 
  -d '{
        "user_id": "your_user_id" // 说明:支持 Bot 开发者设置自定义用户ID
}'

        
此代码块在浮窗中显示

创建 contersation_id 的方法和具体指南请参考 创建对话

Bubble Widget 设置用户ID

开发者使用 Bubble Widget 方式集成 Bot 至开发者网站提供服务时,可在网站用户处于登录状态时,通过调用 GPTBots Bubble Widget SDK 提供的 API 接口设置用户ID。

window.ChatBot.setUserId("your_user_id") // 说明:支持 Bot 开发者设置自定义用户ID
          window.ChatBot.setUserId("your_user_id")
// 说明:支持 Bot 开发者设置自定义用户ID

        
此代码块在浮窗中显示

更多详细的操作指南请参考 部件气泡-高级用法

iframe 设置用户ID

开发者使用 iframe 方式集成 Bot 至开发者网站提供服务时,可在网站用户处于登录状态时,通过调用 GPTBots 提供的 iframe 方法设置用户ID。

  • 方案一:网页嵌入 iframe 地址规则为:iframe_url+?user_id=your_user_id

    说明:支持 Bot 开发者设置用户身份ID,若不设置则使用 GPTBots 默认生成的用户身份ID

  • 方案二:通过 javascript 代码动态设置用户ID
Array.from(document.getElementsByTagName('iframe')).filter(iframe => iframe.src.includes('gptbots')).forEach(iframe => iframe.contentWindow.postMessage('{"type":"UserId","data":"your_user_id"}', '*'))
          Array.from(document.getElementsByTagName('iframe')).filter(iframe => iframe.src.includes('gptbots')).forEach(iframe => iframe.contentWindow.postMessage('{"type":"UserId","data":"your_user_id"}', '*'))

        
此代码块在浮窗中显示

说明:以上是给 iframe 模式,动态设置 userId 的示例,将your_user_id 替换为实际的 userId 即可 更多详细的操作指南请参考 iframe-高级用法

LiveChat 设置用户ID

当开发者使用 Livechat 的 Widget 面向网站用户提供客服服务,同时使用GPTBots AI Bot 提供客户服务时,可通过设置用户ID 的方式实现Bot用户网站登录用户之间的身份打通。可在网站用户处于登录状态时,通过调用 LiveChat Widget SDK 提供的 API 接口设置用户ID。

LiveChatWidget.call("set_session_variables", { user_id: "your_user_id" // 网站用户登录后的身份ID });
          LiveChatWidget.call("set_session_variables", {
    user_id: "your_user_id"  // 网站用户登录后的身份ID
});

        
此代码块在浮窗中显示