如何接入 Facebook Messenger¶
如果你还没有 Facebook page 的话则需要先创建一个¶
Facebook Messenger 是绑定到 Facebook page 上的,如果你的项目还没有 Facebook page,那么你需要先创建一个。
创建一个 Facebook App¶
Facebook Messenger chatbot 同时也绑定一个 Facebook App,参考下面的步骤创建你的 app,然后绑定到上面创建的 Facebook page 上去。
-
打开https://developers.facebook.com, 找到 My Apps 菜单,点击 Create App
-
设置一个 Display Name 然后点击 Create App ID.
-
找到 Messenger Card 点击 Set Up.
-
向下拖动一点页面,找到 Access Token 然后点击 Add or Remove Page 按钮.
-
点击确认
-
这里会看到 Facebook 为你创建好的 Facebook page,选择你想添加 chatbot 的页面然后点击 Next.
-
点击 Done 暂时忽律警告信息,等部署完 chatbot以后你需要至少
locale
权限,Botfront 需要这个权限用以获得用户所使用的语言,从而为用户提供对应语言的服务。
-
点击 Generate Token 按钮
-
点击 I understand 查看 token,注意!如提示所说,你不会再看到这个 token,所以赶紧把它记到一个安全的地方保存起来。
- 点击 Copy 然后直接粘贴到 channel 部分:
```yaml{2}
rasa_addons.core.channels.messenger.FBmessenger:
page-access-token: 9. 点击 **Done**.
![](../../../images/messenger_channel_step10.png)
10. 点击左边菜单中的 **Settings** -> **Basic** 然后在 App Secret 部分点击 **show** 。把这个值拷贝到你 channel 的 **app_secret** 中。
![](../../../images/messenger_channel_step11.png)
```yaml{3}
rasa_addons.core.channels.messenger.FBmessenger:
page-access-token: <your token>
secret: <your secret>
...
- 添加一个验证 token,这个 token 是一串你定义的任意字符串,只要别选特别简单的就行。
```yaml{3}
rasa_addons.core.channels.messenger.FBmessenger:
page-access-token:
secret: verify: ## 本地开发 如果你是在你本地机器上进行开发,那么你需要把本地机器的特定端口暴露到公网上去,让 Facebook 的服务器可以访问到你的机器,推荐两个方式,一个是 [localtunnel.me](https://localtunnel.me) , 另一个是 [ngrok.com](https://ngrok.com),当然如果你有 frp 之类的服务已经在跑了那就更是小菜一碟了。 **Localtunnel** 是开源的, **Ngrok** 是商业软件,但它的免费授权应该足以满足大部分的开发需求了。我们的经验是 **Ngrok** 要更稳定些(the tunnel breaks often with LT),并且它提供了更友好的用户界面、可方便的重发请求,你会发现在调试的过程中重发请求是一个非常方便的特性,所以接下来的介绍里面我们主要基于 **Ngrok** 来做介绍。 #### 1. 设置 Ngrok [登录 Ngrok 网站](https://dashboard.ngrok.com/signup) 获取一个免费授权。 [下载并配置好 Ngrok](https://ngrok.com/download)。 把 `ngrok` 加到系统路径中去或者创建一个软连接(MacOS 和 Linux): ```bash # cd into your local bin directory cd /usr/local/bin # create symlink to the installation path ln -s /Applications/ngrok ngrok
执行 ngrok http 5005
启动 Ngrok, 5005
是你本地机器 Rasa 的监听端口,执行后你应该可以看到类似下面的输出:
所有发到 https://bea5a753.ngrok.io
的请求都会被重定向到你本地开发机器的 https://localhost:5005
端口,接下来把这个配置添加到 Facebook 中。
2. 配置 Webhook¶
在前面创建的 App 中向下滑到 Webhook ,点击 Add Callback URL.
把上面得到的 ngrok url(https://<ngrok_host>/webhooks/facebook/webhook
) 和之前第 11 步获得的 verify
token 填进去, 点击 Save.
监听对应的时间. 你应该会看到类似下图中的输出, 官方文档 中有更详细的介绍。
3. 测试你的 chatbot¶
导航到 https://m.me/<page_id>
, <page_id>
可以在你的 app 设置页面找到 (如下图遮盖的位置).