账号绑定的几种方式

关联Facebook账号和您网站上的账号之后,就可以通过调用Bothub提供的API,指定用户在您网站上的账号,即可给该用户发送消息。 账号关联有两种方式:

  • 当用户在Messenger内进行绑定时,可以借助Messenger内的登录按钮
  • 当用户在浏览官网或者App时,可以借助m.me短链进行账号绑定

对账号绑定的一些说明:

  • 一个Facebook账号只能和一个网站账号进行绑定
  • 如果用户的Facebook账号已经和网站账号绑定过了,再次和另一个账号进行绑定的话,会解除此Facebook账号和之前官网账号的绑定关系,而改为和新的官网账号绑定
  • 如果网站账号C已经和一个Facebook账号B绑定,Facebook账号A再试图和网站账号C绑定,是可以成功的。其结果是Facebook账号A和B都和网站账号C进行绑定。
  • 以上说明对下面所有的绑定方式皆有效。

从Messenger内发起的账号绑定 - Messenger内的登录按钮

特性介绍

Account link功能可以允许用户在Messenger中,打开您提供的登陆网页,输入用户名和密码进行账号绑定,以便为用户提供更精准的服务,例如:

  • 为用户提供订单的回执和发货提醒
  • 用户在Messenger中下单之后,可以将订单纳入您的订单管理系统中
  • 根据用户在您网站上的订购和浏览情况,客服可以在Messenger中和用户进行更有效的沟通

开发指南

要为自己的bot添加一个账号联结功能,步骤如下:

  1. 在后台添加一个橱窗卡片,选择下方的“+登录"的按钮,创建一个Log in按钮

2. 在Messenger中用户实际点击这个Login按钮时,会跳转到这个网址,并附带两个参数:
account_linking_token=ACCOUNT_LINKING_TOKEN
redirect_uri=CALLBACK_URL

您需要做一个网页(例子),以便让用户输入用户名和密码(或者使用任何联合登陆),这个界面可以是您网站的标准登陆页面,

3. 将判断结果告知facebook

  1. 若用户输入的用户名和密码验证通过生成一个验证码,格式为 用户名_用户种类_时间戳,并用base64_encode进行编码。
    • 用户名即用户在您系统中登录时的用户名。
    • 用户种类分三种,username / email / phone_number, 根据用户输入的账号种类选取。Bothub支持将facebook id同时和username /email / phone_number绑定。换言之,如果用户先后通过您的登录页面用email / phone_number登录,并绑定成功,以后您在调用发送消息API或者发送模板消息是都用此用户的email,phone_number和facebook id都可以指定到这个用户。
    • 时间戳为标准unix时间戳,长度为十位数字,表示从1970.1.1到现今为止的总秒数
  2. 跳转用户页面至{redirect_uri}?authorization_code=验证码,绑定即成功
  3. 若用户输入的用户名和密码验证不通过,则直接跳转用户至redirect_uri

从网站或App发起的账号绑定

当用户已经在官网登录之后,只要将用户引导到Messenger内,就能够完成账号的绑定。这个引导我们目前支持用m.me短链和Send To Messenger按钮来完成。

通过m.me链接进行账号绑定

m.me链接可以作为一个需要Messenger场景的入口(例如客服系统的入口,将用户进入Messenger和Bot/客服进行聊天)。 网站/App的开发人员需要通过如下的方式构造一个账号绑定链接: https://m.me/{FACEBOOK_PAGE_ID}?ref={ENGAGEMENT_CHANNEL_ID},{ENCRYPTED_USER_INFO}

  • FACEBOOK_PAGE_ID : FB主页的链接,形如 1307470745964714
  • ENGAGEMENT_CHANNEL_ID : 从messenger.bothub.ai后台新建短链接来源后获取。形如engagement:1a0:0 获取方式如下图所示
  • ENCRYPTED_USER_INFO : 由于此链接是暴露在网站上的,虽然和用户登录的账号相关,但万一不慎泄露也是有风险的。因此Bothub在此加了两重保障措施:首先是对账号进行加密,即使获取此链接也无法直接看出账号,另外设了1天的时效,链接生成后1天内如果没有使用,链接即失效,仅能起到普通短链接来源的效果,无法起到绑定效果。 构造方式:先构造一个字符串,形如 {USER_NAME},{Timestamp} ,其中USER_NAME为用户在网站或App上的用户名。如果不想在绑定时使用真实的用户名,也可对用户名进行加密处理,只要自己能识别就可以。Timestamp为10位的数字时间戳,形如1590000000。然后向Bothub要一个RSA密钥对,对此字符串进行加密。即构造完成。

当用户在手机上点击此链接时,如果安装了Messenger并且已经登录了的话,会跳转到Messenger里相应的Bot的对话页面。当用户点击了Get Started之后,绑定即完成。

通过Checkbox插件进行绑定

在页面上,我们需要放置checkbox插件,在用户加入购物车/订阅的同时,将用户在您网站上的账号传给 Bothub,以便后续通过API给用户发送订单回执和物流更新提醒。

将用户在您网站上的账号发送给 Bothub,这段代码放在标签中

<script src="https://assets.bothub.ai/bothub/sdk/configs/bothub-widgets-config-126.js"></script>

<script>
window.bhAsyncInit.push(function() {
    window.BH.User.setCustomUserId('<这里填入用户账号>');
});
</script>

用户点击加车或订阅按钮时,向 Bothub 发送subscribe_to_order_updates事件。实际情况中,按钮可能有其他元素,不需要改动,添加如下onclick代码即可。

<button [按钮中可能有的其他内容] onclick="window.BH.Event.logEvent('subscribe_to_order_updates')">
</button>

如此,在用户勾选并加车/点击订阅后,Bothub 会将用户在你网站上的账号与Facebook提供的ref进行绑定,使得在此后的一段时间内,你可以通过API,指定向该用户发送消息发送消息请用如下的方式指定用户:

{
   "recipient": {
      "username": "<用户账号>"
   }
}

results matching ""

    No results matching ""