使用场景
账号绑定
使用Bothub提供的m.me绑定流程,用户在Messenger中和您的主页进行第一次交互之后,自动完成绑定流程;
使用m.me的账号绑定功能,需要你手动拼接短链后传递至客户端。
流程介绍
- 用户在您官网上点击m.me链接
- 用户在聊天窗口里点击 Get Start 按钮,即可开始与主页聊天
- 绑定是在用户点击 Get Start 按钮时自动完成
如何生成短链接
- 没有账号绑定功能的短链接的格式,通过Botub后台创建: https://m.me/{FACEBOOK_PAGE_ID}?ref={ENGAGEMENT_CHANNEL_ID}
- 具有账号绑定功能的短链接格式: https://m.me/{FACEBOOK_PAGE_ID}?ref={ENGAGEMENT_CHANNEL_ID},{ENCRYPTED_USER_INFO}
其中{ENCRYPTED_USER_INFO}
是一个加密过的字符串,他是由用户账号以及时间戳(秒级时间戳,长度为10的数字组成)拼接加密生成;
接下来我们来创建一个具有账号绑定功能的短链接:
- 首先您需要进入Bothub后台查看您的Bot的RSA密钥,API对接 -> 密钥管理;
- 拿到用户ID后与时间戳进行拼接,格式:
someone@bothub.ai,1590983649
; 用RSA密钥对待加密字符串进行加密。以下是PHP代码的样例;
public function privateEncrypt($data) { $encrypted = ''; $part_len = $key_len / 8 - 11; // Key Len为256 $parts = str_split($data, $part_len); foreach ($parts as $part) { $encrypted_temp = ''; openssl_private_encrypt($part, $encrypted_temp, $private_key); // Private key为上一步获取到的私钥 $encrypted .= $encrypted_temp; } return base64_encode($encrypted); }
- 最后用加密后的字符串替代掉短链中的 {ENCRYPTED_USER_INFO},即构造完成;可以将此链接修饰成客服聊天入口或其他符合商户需要的业务场景的入口,放置在官网上。
注意:
- 由于链接中包含加密过的用户信息,所以不同用户的链接是不同的。
- 一个链接可以点击多次。同一个用户多次点击该链接绑定,和点击一次的效果是一样的。
- 加密的用户信息中包含时间戳是出于以下考虑: 由于此链接是展示在网站上的,虽然和用户登录的账号相关,但万一不慎泄露也是有风险的:一旦用户不小心分享或公开了自己的链接,别人就有可能利用此链接将自己的Facebook账号和用户官网账号绑定。因此,Bothub设置了短链的有效期:如果当前时间已经超过了ENCRYPTED_USER_INFO中的时间戳一天以上时,此链接失效,仅能将用户导引到商户Messenger主页,而不再有绑定账号效果。故此,建议商户在用户每次访问官网的时候动态生成这个链接。