hemantshekhawat / chatbot-php
基于PHP的faceboot消息聊天机器人的集成
Requires
- iboldurev/api-ai-php: ^0.2.2
- monolog/monolog: ^1.21
- vlucas/phpdotenv: ^2.3
This package is not auto-updated.
Last update: 2024-09-28 20:03:43 UTC
README
此软件包简化了在PHP中构建聊天机器人的过程。给我10分钟时间,我将为您提供聊天机器人启动设置。
如果您想在PHP中构建聊天机器人,那么这个模板是完美的起点。它包括您连接应用程序到消息传递平台所需的所有知识。您将找到回复聊天消息的简单示例。(目前仅支持Facebook Messenger)
此外,此模板还支持bot平台如api.ai和wit.ai。 (wit .ai即将推出)。这有助于您处理和理解用户的意图。
此软件包使用PSR-1和PSR-2,如果您注意到合规性疏忽,请通过pull request发送补丁。
要求
-
= PHP 7
- Composer
支持的消息传递平台
- Facebook Messenger
- 更多即将推出
包含
- 创建FB Messenger应用
- 创建FB页面
- 设置Chatbot PHP模板
- 创建webhook
- 将Facebook应用连接到Facebook页面
不包含
- 如何使用api.ai
- 如何使用wit.ai
安装
创建FB页面
首先登录到Facebook并创建一个Facebook页面。页面不需要公开。选择最适合您机器人的设置,但在测试中并不重要。
创建FB Messenger应用
转到开发者应用页面。点击“添加新应用”并填写基本应用字段。
在“产品设置”页面选择“消息传递”并点击“开始”。
现在我们需要创建一个令牌,以让我们的应用访问我们的Facebook页面。选择创建的页面,授予权限并复制生成的令牌。我们稍后需要这个令牌。
设置Chatbot PHP模板
首先克隆存储库并删除现有的git文件夹。
git clone git@github.com:christophrumpel/chatbot-php-boilerplate.git chatbot-boilerplate
cd chatbot-boilerplate
rm -rf .git
现在我们需要安装Composer依赖项
composer install
此模板使用.env文件(环境)。所有敏感数据,如密钥,都存储在此。此文件应列入您的.gitignore文件。这是因为这些数据不应包含在您的存储库中。此外,您还可以在不同的环境中使用不同的密钥。(例如,在本地环境中使用测试bot平台账户)
在此模板中包含一个名为.env.example的示例文件。将其重命名以便使用。
mv .env.example .env
接下来查看此文件。目前我们有两个值要考虑。第一个是WEBHOOK_VERIFY_TOKEN,这是一个您可以在此定义的令牌。现在填写一些内容,我们稍后会用到。第二个值是PAGE_ACCESS_TOKEN,这是我们从前面的消息传递应用中获取的。在此填写它。太完美了!
为消息传递应用创建webhook
在我们的PHP应用程序中,我们需要有一个webhook。这意味着一个Facebook可以与之通信的公开URL。每次用户在FB聊天中发送消息时,FB都会将其发送到该URL,这是进入我们PHP应用程序的入口点。在此模板中,它是index.php文件。
因此,我们需要一个指向index.php文件的公共URL,这里有两个选项供您选择。
使其上线
如果您有服务器,您可以将代码推送到那里,您有权访问它。那么URL可能看起来像这样:https://yourserver.com/chatbot-php-boilerplate/。
本地执行
在测试时,如果您不必将每个更改推送到实时服务器以测试代码,那就容易多了。这就是为什么我使用本地公共URL的原因。有许多服务可以生成指向您本地服务器的公共URL。请查看ngrok或使用Laravel Valet Sharing,因为我在使用Valet。 (Laravel Valet也使用ngrok)
无论您如何操作,您只需要一个指向index.php文件的公共安全URL。(https!)这是我的URL:https://7def2gH4.ngrok.io
将Facebook应用连接到您的应用
现在我们已经有了URL,我们需要设置webhook。回到您的Facebook应用设置,点击“Webhooks”部分中的“Setup Webhooks”。
填写公共URL,从.env文件中的WEBHOOK_VERIFY_TOKEN,勾选所有订阅字段,然后点击“Verify and Save”。
如果您一切都做对了,您现在有一个正在工作的webhook了。如果没有,您将在webhook URL字段看到一个错误图标。如果URL或令牌不正确,就会发生这种情况。
将Facebook应用连接到Facebook页面
现在安装的最后一步将确保我们的Facebook应用连接到了Facebook页面。为此,在您的“Webhooks”设置页面中有一个下拉菜单。在这里选择您的页面,然后点击“Subscribe”。
测试一下
所以我们最后可以测试整个设置。转到您的Facebook页面,点击消息按钮以发送消息。键入Hi并按回车键。你现在应该看到这个回答:Define your own logic to reply to this message: Hi
如果您看到了这个,那么恭喜您。您成功了!您已经成功安装了Chatbot PHP Boilerplate并收到了您的第一条回复。
如果您没有得到回复,那么可能出了点问题 =(检查您服务器的日志文件以了解更多信息。此外,您可以使用内置的Monolog Logger进行调试。
用法
示例1:静态消息
在您的index.php文件中,您将找到以下代码行
$replyMessage = $chatbotHelper->getAnswer($message);
在这里,用户的消息被用来获取一个答案。在这种情况下,消息在ChatbotAi方法getAnswer中进行分析。它只是返回一个带有原始消息的静态文本。如下面所述,您可以定义自己的逻辑来回复消息。使用PHP的preg_match函数在消息中查找单词也是很常见的。在示例中,如果消息包含hi、hey或hello,方法将返回一些问候文本。
示例2:外汇汇率
这里使用了一个公共API来向用户返回外汇汇率。用户可以键入像EUR、USD、CHF等货币。这是一个简单的示例,但可以很好地了解如何使用外部API。
示例3:使用机器人平台
机器人平台可以帮助您分析用户的消息意图。目前仅集成了api.ai,但将有更多实现。(下一个是wit.ai)
要使用api.ai,只需在getAnswer方法中添加参数apiapi即可。在您的index.php文件中也有一个示例。
// If you want to use a bot platform like api.ai try // Don't forget to provide your api.ai token in the .env file $replyMessage = $chatbotHelper->getAnswer($message, 'apiai');
许可证
MIT许可证(MIT)。