IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 后台系统接入udesk在线客服(vue前端方式) -> 正文阅读

[JavaScript知识库]后台系统接入udesk在线客服(vue前端方式)

SDK最舒服的一点就是买来服务,直接Ctrl C+V脚本进项目基本就能完成目标功能,要做的无非就是自定义属性的添加。
楼上项目组用的是java后端接入,我这儿是vue前端接入,做法略有不同。

在这里插入图片描述

  1. 简单点做就是复制上面script标签内代码到index.html中,但是只传code跟link并不能做到监听到用户个人信息(手机电话邮箱等),所以pass
  2. 要传个人信息,只能手动配置,问题是系统中的信息是ajax动态请求,通过vuex,也就是说这段script写在index.html这个静态文件中并不能获取到
  3. 我这边是写在权限文件中,登录时会ajax请求个人信息,然后传给udesk配置项
  4. 在这里插入图片描述
// udesk.js
import { randomNum } from '@/utils/util'
const sha1 = require('js-sha1')
export default {
    init(data) {
        if (!window.ud) {
            this.createUdeskScript(data)
        }
    },
    createUdeskScript(data) { //udesk代码块
        (function (a, h, c, b, f, g) { a['UdeskApiObject'] = f; a[f] = a[f] || function () { (a[f].d = a[f].d || []).push(arguments) }; g = h.createElement(c); g.async = 1; g.charset = 'utf-8'; g.src = b; c = h.getElementsByTagName(c)[0]; c.parentNode.insertBefore(g, c) })(window, document, 'script', 'https://assets-cli.udesk.cn/im_client/js/udeskApi.js', 'ud')
        const ud = window.ud
        let nonce = randomNum()
        const timestamp = Date.parse(new Date())
        let sign_str1 = `nonce=${nonce}&timestamp=${timestamp}&web_token=${data.mail}&9ed826f8b6aeb0e7a6d4040790d2b641`
        let sign_str2 = sha1(sign_str1)
        const udParams = {
            code: 'xxxx',
            link: 'xxxx',
            pos_flag: 'vrm',
            css: {
                right: 0
            },
            customer: {
                c_name: data.employee_name,
                c_email: data.mail,
                c_phone: data.contact,
                signature: sign_str2.toUpperCase(),
                timestamp,
                web_token: data.mail,
                nonce
            }
        }
        ud(udParams)
    }
}
  • signature加密算法:(我这边直接npm安装的js-sha1)

(1)按以下参数及顺序拼接字符: nonce/timestamp/web_token

sign_str = nonce=value&timestamp=value&web_token=value

(2)以上字符串加入 &im_user_key
sign_str = nonce=value&timestamp=value&web_token=value&im_user_key

(3)使用 sha1 计算出签名并大写
Digest::SHA1.hexdigest(sign_str).upcase

示例:
nonce=9ca6fff5a509fb887ac72cf5c92010e7&timestamp=1455675719000&web_token=123&b476f9f8-5309-4d0a-a2d4-af08c4507a15

在这里插入图片描述

(本来想问楼上的大佬咋配的,感觉好麻烦,还是自己看文档了)

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:43:36  更:2022-09-30 00:45:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 20:14:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码