SDK详细文档
如果您的网站集成的是通过Bothub后台生成的代码,您并不需要手动调用
window.BH.init
方法;因为我们的SDK已经帮你初始化,您可以直接使用SDK的能力;包含User模块,Event模块,Weiget模块
快速使用
Bothub SDK 没有任何需要下载或安装的独立文件,而只需要在HTML中包含一小段常规 JavaScript 代码,它们会将 SDK 异步加载到您的页面中。 异步加载意味着它不会阻止加载页面的其他元素,随后就可以进行配置初始化了。
以下代码片段将提供 SDK 的基本版本,其中选项设置为最常见的默认值。
- 首先在需要添加插件的地方放置一个携带id属性的
div
,这里请确保遵循ID唯一的约定;<div id="bothub-widget-abc"></div>
- 在页面中直接插入这段脚本,这里
widgets
内的参数是sendtomessenger插件需要的参数:<script> window.bhAsyncInit = function() { window.BH.init({ language: "en_US", pageId: '{your-page-id}', widgets: [{ id: 'bothub-widget-abc', type: "Customerchat", }] }); }; </script> <script async defer src="https://sdk.bothub.ai/dist/sdk-2-latest.js"></script>
- 需要注意,
bhAsyncInit
参数是sdk加载完成后回掉的方法,确保您的后续代码不会覆盖它。同时bhAsyncInit
也可以是一个Array
,因此您可以将需要sdk加载完成后的回掉方法push
进数组。<script> window.bhAsyncInit = []; window.bhAsyncInit.push(function() { window.BH.init({ language: "en_US", pageId: '{your-page-id}', widgets: [{ id: 'bothub-widget-abc', type: "Customerchat", }] }); }); </script> <script async defer src="https://sdk.bothub.ai/dist/sdk-2-latest.js"></script>
高级用法
这里将会列举出所有的 SDK 方法和配置项。Bothub SDK 将会被挂载在全局的BH命名空间下,你可以通过window.BH来访问它。
window.BH.init()
方法用于初始化设置 SDK。必须在此之后调用所有其他SDK方法,因为它们在您执行之前不会存在。
方法 | 描述 |
---|---|
.init() | 用于初始化和设置SDK。调用这个函数后才能调用所有其他 SDK 方法。 |
调用
window.BH.init(params);
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 | ||
---|---|---|---|---|---|---|
params | object |
必填 | - | 控制 SDK 设置的初始化参数 | ||
params.pageId | string |
必填 | - | 用户连接的 facebook 页面编号 | ||
params.customUserId | string |
可选 | '' |
当前用户的自定义编号 | ||
params.language | `'zh_CN' | 'zh_TW' | 'en_US'` | 可选 | en_US |
使用的语言 |
params.widgets | array |
可选 | [] |
页面插件属性描述 | ||
params.renderImmediately | boolean |
可选 | true |
初始化后是否立即渲染页面插件 |
params.renderImmediately
参数如果设置为false
,需要在你需要渲染的时候手动调用window.BH.Widget.render()
方法
示例
window.BH.init({
pageId: '{your-page-id}',
language: 'en_US',
renderImmediately: true,
});
User 模块
用户的自定义编号是 Bothub 用于记录用户事件的凭据,相同的用户编号就会认为是同一个用户的操作(但是同一个用户可以有很多不同的编号)
方法 | 描述 |
---|---|
.User.getCustomUserId() |
获取当前的用户自定义编号。 |
.User.changeCustomUserId() |
变更并设置当前用户的自定义编号。 |
获取用户CustomUserId .User.getCustomUserId()
该方法可以获得当前用户的自定义编号。
示例
const user_id = window.BH.User.getCustomUserId();
说明
此接口将会返回用户编号的字符串。 如果当前没有设置用户编号,将会返回undefined(该情况一般不会出现)。
修改用户CustomUserId .User.changeCustomUserId()
Event 模块
需要告知Bothub 当前用户触发的事件,在Bothub后台设置对应事件的处理;待用户触发相应事件后就可按照你设定的动作完成后续营销。
方法 | 描述 |
---|---|
.Event.addedToCart() |
当用户添加商品至购物车时,调用此事件。 |
.Event.addedToWishlist() |
当用户添加商品至愿望单时,调用此事件。 |
.Event.initiatedCheckout() |
当用户结算购物车时,调用此事件。 |
.Event.purchase() |
当用户完成商品购买时,调用该事件。 |
.Event.logEvent() |
需要自定义 Bothub 事件时调用。 |
添加购物车事件.Event.addedToCart()
当用户添加商品至购物车时,调用此事件。
调用
window.BH.Event.addedToCart(params);
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params | object |
可选 | - | 事件参数 |
params.sku | string |
必填 | - | 商品编号 |
params.name | string |
必填 | - | 商品名称 |
params.currency | string |
必填 | - | 商品货币单位 |
params.price | number |
必填 | - | 商品价格 |
示例
// 不带参数
window.BH.Event.addedToCart();
// 带参数
window.BH.Event.addedToCart({
sku: '1000-1',
name: 'T-shirt',
currency: 'USD',
price: 200,
});
添加愿望清单事件.Event.addedToWishlist()
当用户添加商品至愿望清单时,调用此事件。
调用
window.BH.Event.addedToWishlist(params);
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params | object |
可选 | - | 事件参数 |
params.sku | string |
必填 | - | 商品编号 |
params.name | string |
必填 | - | 商品名称 |
params.currency | string |
必填 | - | 商品货币单位 |
params.price | number |
必填 | - | 商品价格 |
示例
// 不带参数
window.BH.Event.addedToWishlist();
// 带参数
window.BH.Event.addedToWishlist({
sku: '1000-1',
name: 'T-shirt',
currency: 'USD',
price: 200,
});
购物车结算事件.Event.initiatedCheckout()
当用户结算购物车时,调用此事件。
调用
window.BH.Event.initiatedCheckout(params);
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 | |
---|---|---|---|---|---|
params | object |
可选 | - | 事件参数 | |
params.sku | string |
必填 | - | 商品编号 | |
params.name | string |
必填 | - | 商品名称 | |
params.currency | string |
必填 | - | 商品货币单位 | |
params.quantity | number |
必填 | - | 商品数量 | |
params.availablity | `'0' | '1'` | 必填 | - | 商品是否可以付款的状态,0 不能付款,1 可以付款 |
params.totalPrice | number |
必填 | - | 购物车结算总价格 |
示例
// 不带参数
window.BH.Event.initiatedCheckout();
// 带参数
window.Event.initiatedCheckout({
sku: '1000-1',
name: 'T-shirt',
currency: 'USD',
quantity: 10,
availablity: '1'
price: 200,
});
完成购物事件.Event.purchase()
当用户完成购物时,调用此事件。
调用
window.BH.Event.purchase(params);
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params | object |
可选 | - | 事件参数 |
params.orderNumber | string |
必填 | - | 订单编号 |
params.source | string |
必填 | - | 商家来源 |
params.currency | string |
必填 | - | 商品货币单位 |
params.totalPrice | number |
必填 | - | 购物车结算总价格 |
示例
// 不带参数
window.BH.Event.purchase();
// 带参数
window.Event.purchase({
sku: '1000-1',
name: 'T-shirt',
currency: 'USD',
quantity: 10,
availablity: '1'
price: 200,
});
完成购物事件.Event.logEvent()
默认事件无法满足时,手动创建新的事件。
调用
window.BH.Event.logEvent(name);
window.BH.Event.logEvent(params);
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
name | string |
可选 | - | 事件名称 |
params | object |
可选 | - | 事件参数 |
params.name | string |
可选 | - | 事件名称 |
示例
// 不带参数
window.BH.Event.logEvent();
// 带事件名称
window.BH.Event.logEvent('bind_facebook_id');
// 带参数
window.Event.logEvent({
name: 'bind_facebook_id',
});
Widget 模块
插件相关方法
方法 | 描述 |
---|---|
.Widget.setConfig() ) |
设置插件属性 |
.Widget.render() ) |
立即渲染插件 |
.Widget.destroy() ) |
销毁插件 |
设置插件属性 .Widget.setConfig()
window.BH.Widget.setConfig()
方法用来设定插件的属性。此操作并不会触发插件的重新渲染,需要用户手动调用
window.BH.Widget.render()
方法渲染。
如果当前设置的插件编号已经存在,则当前的属性将会和旧有的属性合并,新属性优先。 如果当前设置的插件编号不存在,则当前设置的插件将会直接添加到插件列表中。
调用
window.BH.Widget.setConfig(params);
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params | object |
必填 | - | 插件的属性 |
params.id | string |
必填 | - | 你想要设置的插件编号 |
params.[key in param] | any |
可选 | - | 插件参数,对于不同的插件会有不同的属性,详情请看插件属性说明。 |
示例
window.BH.Widget.setConfig({
id: '{widget-id}',
color : 'blue',
rendered() {
console.log('Widget loaded.');
},
});
立即渲染插件 .Widget.render()
销毁插件 .Widget.destroy()
window.BH.Widget.destroy()
方法用来销毁插件。你可以指定销毁插件的编号,也可以什么都不填,这样将会默认销毁页面上的所有插件。
样例
window.BH.Widget.destroy();
window.BH.Widget.destroy('widget-abc');