hemantshekhawat/chatbot-php

该软件包最新版本(v0.1)没有可用的许可信息。

基于PHP的faceboot消息聊天机器人的集成

v0.1 2016-08-08 17:19 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:03:43 UTC


README

此软件包简化了在PHP中构建聊天机器人的过程。给我10分钟时间,我将为您提供聊天机器人启动设置。

Software License GitHub version

如果您想在PHP中构建聊天机器人,那么这个模板是完美的起点。它包括您连接应用程序到消息传递平台所需的所有知识。您将找到回复聊天消息的简单示例。(目前仅支持Facebook Messenger)

此外,此模板还支持bot平台如api.aiwit.ai。 (wit .ai即将推出)。这有助于您处理和理解用户的意图。

此软件包使用PSR-1PSR-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应用

转到开发者应用页面。点击“添加新应用”并填写基本应用字段。

Image of Facebook app creation

在“产品设置”页面选择“消息传递”并点击“开始”。

Image of the app product setup

现在我们需要创建一个令牌,以让我们的应用访问我们的Facebook页面。选择创建的页面,授予权限并复制生成的令牌。我们稍后需要这个令牌。

Image of the token creation

设置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”。

Image of Facebook app webhook setup

填写公共URL,从.env文件中的WEBHOOK_VERIFY_TOKEN,勾选所有订阅字段,然后点击“Verify and Save”。

Image of Facebook app webhook infos

如果您一切都做对了,您现在有一个正在工作的webhook了。如果没有,您将在webhook URL字段看到一个错误图标。如果URL或令牌不正确,就会发生这种情况。

将Facebook应用连接到Facebook页面

现在安装的最后一步将确保我们的Facebook应用连接到了Facebook页面。为此,在您的“Webhooks”设置页面中有一个下拉菜单。在这里选择您的页面,然后点击“Subscribe”。

Image of Facebook app webhook select page to subscribe to

测试一下

所以我们最后可以测试整个设置。转到您的Facebook页面,点击消息按钮以发送消息。键入Hi并按回车键。你现在应该看到这个回答:Define your own logic to reply to this message: Hi

Image showing your first chatbot response

如果您看到了这个,那么恭喜您。您成功了!您已经成功安装了Chatbot PHP Boilerplate并收到了您的第一条回复。

如果您没有得到回复,那么可能出了点问题 =(检查您服务器的日志文件以了解更多信息。此外,您可以使用内置的Monolog Logger进行调试。

用法

示例1:静态消息

在您的index.php文件中,您将找到以下代码行

$replyMessage = $chatbotHelper->getAnswer($message);

在这里,用户的消息被用来获取一个答案。在这种情况下,消息在ChatbotAi方法getAnswer中进行分析。它只是返回一个带有原始消息的静态文本。如下面所述,您可以定义自己的逻辑来回复消息。使用PHP的preg_match函数在消息中查找单词也是很常见的。在示例中,如果消息包含hiheyhello,方法将返回一些问候文本。

示例2:外汇汇率

这里使用了一个公共API来向用户返回外汇汇率。用户可以键入像EURUSDCHF等货币。这是一个简单的示例,但可以很好地了解如何使用外部API。

Image showing the rates example

示例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)。