介绍
这是2018年Meister来临日历第8天的文章。
我是正准备毕业的大学实习生masaki-ogawa。
这是《大姐》第8天的文章,但我想写一整年我亲自研究的
制作LINE BOT
时指的是什么
让我们做一个LINE BOT!我提到了使用Messaging API的聊天机器人的基础知识和用法示例。
我推荐它,因为它非常有帮助。环境构建部分和示例代码非常容易理解和有用。
另外,Messaging API的官方文档也很有帮助。
关于环境建设
有很多关于LINEBOT的文章,并且有许多使用GAS创建无服务器LINEBOT服务器的示例,但是我想使用Heroku,所以我决定使用Heroku。
<铅>
执行环境
- Macbook Air早期2014
- 记忆体8GB
- 处理器Intel Core i5
- macOS Sierra
开一个Heroku帐户
首先,访问Heroku并转到首页。
在heroku
--PHP
--Node
--Java
--Ruby
--Python
-转到
-斯卡拉
它对应于这种语言。
这次,我选择PHP是因为我所指的书是用PHP编写的,并且因为Your Meister使用PHP并且这是一种熟悉的语言。
首先,创建一个帐户。
在注册屏幕上输入所需的项目。由于如上所述这次使用PHP,因此在这里选择
这样就完成了帐户创建。
安装Heroku CLI
不必直接创建LINE BOT,但是在将来的开发过程中检查Heroku日志以及在安装该工具时在本地操作时,有必要安装它,我将其保留。
访问Heroku CLI并通过OS进行安装。
如果安装成功,则
1 2 3 4 5 | ogawa:lineBot$ heroku CLI to interact with Heroku VERSION heroku/7.18.10 darwin-x64 node-v11.1.0 |
当前版本之类的信息将像
一样返回。
在Heroku
上创建一个新项目
[heroku命令]我继续参考创建来销毁。
这次,我将创建一个名为
1 2 3 4 5 | $ mkdir lineBot $ cd lineBot $ touch index.php |
将在
1 2 3 4 5 | $ git add. $ git commit -m 'first commit' $ git push heroku master |
使用
,我可以推送一个空文件。
*如果要求您登录,请执行
LINE BOT SDK
简介
不需要只返回鹦鹉的BOT,但是对于LINE BOT的将来开发会很方便,因此我们建议安装它。
使用Composer易于安装。
如果未安装Composer,则
我安装了Composer
通过参考安装。
您刚刚创建的
1 | $ composer require linecorp/line-bot-sdk |
执行
以完成安装。
1 2 3 4 5 | $ git add. $ git commit -m 'require line-bot-sdk' $ git push heroku master |
像
一样将其推入Heroku。
向LINE Developers注册
转到
LINE Developers。
单击右上方的登录或屏幕中心的登录。
在此屏幕上,输入在LINE帐户中注册的电子邮件地址和密码以登录。
登录后,创建一个新的提供程序。这次,我创建了一个名为
创建一个中间为
从此屏幕输入各种信息。
LINE Developers管理屏幕经常更新,因此该屏幕可能与其他文章有所不同,但是输入内容不会改变。截至2018年12月显示此屏幕。
注册完成后,在创建的通道的Webhook URL中指定您先前创建的Heroku应用程序的URL,并记下Channel Secret Channel Access Token。
您也可以检查如何从此文档创建它。
创建一个返回Echolalia
的LINE BOT
创建这样的东西。
检查您需要的数据
当消息从用户发送到BOT时,内容将以JSON格式传递到Webhook URL中指定的URL。
例如,如果文本消息" Hello"是从用户发送的,则您将收到以下JSON。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | { "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA", "type": "message", "timestamp": 1462629479859, "source": { "type": "user", "userId": "U4af4980629..." }, "message": { "id": "325708", "type": "text", "text": "こんにちは" } } |
由于使用Messaging API发送消息时需要
为了返回消息,仅需要获取接收到的文本的信息,因此可以获取消息中的文本并回复内容。
为返回机器人
的BOT创建代码
在先前创建的
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php // Composerでインストールしたライブラリを一括読み込み require_once __DIR__ . '/vendor/autoload.php'; // アクセストークンを使いCurlHTTPClientをインスタンス化 $httpClient = new \LINE\LINEBot\HTTPClient\CurlHTTPClient('Channel Access Token'); //CurlHTTPClientとシークレットを使いLINEBotをインスタンス化 $bot = new \LINE\LINEBot($httpClient, ['channelSecret' => 'Channel Secret']); // LINE Messaging APIがリクエストに付与した署名を取得 $signature = $_SERVER["HTTP_" . \LINE\LINEBot\Constant\HTTPHeader::LINE_SIGNATURE]; //署名をチェックし、正当であればリクエストをパースし配列へ、不正であれば例外処理 $events = $bot->parseEventRequest(file_get_contents('php://input'), $signature); foreach ($events as $event) { // メッセージを返信 $response = $bot->replyMessage( $event->getReplyToken(), new \LINE\LINEBot\MessageBuilder\TextMessageBuilder($event->getText()) ); } |
使用
SDK,它非常容易实现。使用
在这种情况下,如果将令牌和文本传递给
末尾
因为这是开始,所以我想添加一个数据库并保存用户发送的文本。
当前正在创建的LINE BOT是一个LINE BOT,它接受对避难所受害者的请求,因此我们正在创建一个BOT,它允许您输入必要的物资并保存对避难所的请求。
至于我给人的印象,我认为我有一个梦想,可以根据想法进行任何BOT。官方的SDK十分方便。