使用line-bot-sdk-java在Spring Boot上创建LINE Bot

简介

使用LINE分发的line-bot-sdk-java示例代码,尝试运行LINE Bot的步骤。这个示例代码包含了创建LINE Bot所需的全部代码,因此在这基础上进行扩展会更加高效。Java的版本是11.02。

相关

使用Spring Boot + JPA + Flyway在Heroku上创建LINE Bot。
这是对line-bot-sdk-java进行修改并进行数据库连接的版本。

环境

    • Java 11.02

 

    Spring Boot 2.4.9 (line-bot-sdk-javaで使われているversion)

创建LINE媒体频道

根据以下内容创建一个频道。
创建一个专门供机器人使用的频道。

在Heroku上创建应用

在Heroku上创建应用。
https://signup.heroku.com/

将环境变量注册到Heroku上。

在LINE开发者控制台中,确认Messaging API通道的通道秘钥和通道访问令牌,并将以下内容注册到Heroku管理界面的Config Vars中。

CHANNEL_TOKEN:LINE的频道访问令牌
CHANNEL_SECRET:LINE的频道密钥

编写源代码

获取示例代码

在示例代码中包含了各种各样的内容,但是我们要使用其中的sample-spring-boot-kitchensink。

$ git clone https://github.com/line/line-bot-sdk-java.git

使用IntelliJ打开build.gradle文件

使用Intellij打开TOP层级的build.gradle。

编辑Procfile

为了使用sample-spring-boot-kitchensink,请将Procfile改写为以下内容。

-web: java $JAVA_OPTS -jar sample-spring-boot-echo/build/libs/sample-spring-boot-echo-*.jar --server.port=$PORT
+web: java $JAVA_OPTS -jar sample-spring-boot-kitchensink/build/libs/sample-spring-boot-kitchensink-*.jar --server.port=$PORT

创建和编辑设置文件

复制模板。

$ cd sample-spring-boot-kitchensink/src/main/resources/
$ cp application-template.yml application.yml

请删除以下字符串,并使用环境变量定义LINE的TOKEN和SECRET如下。

这是一个配置文件的模板。
复制一份叫做application.yml的副本,并更改下面的值。

line.bot:
  channel-token: ${CHANNEL_TOKEN}
  channel-secret: ${CHANNEL_SECRET}
  handler.path: /callback

部署

将Heroku的信息注册到Git中。

$ heroku git:remote -a {HEROKU_APP_NAME}

部署

$ git add Procfile
$ git commit -m 'Initial commit'
$ git push heroku master

LINE开发者控制台

在LINE的管理界面上,将Heroku应用的URL作为Webhook注册。

Webhook URL:https://{HEROKU_APP_NAME}.herokuapp.com/callback
使用Webhook:开启

Screen Shot 2021-07-18 at 19.55.20.png
Screen Shot 2021-07-18 at 19.54.43.png

如果確定OK的話,表示LINE BOT已經成功啟動了。

确认动作

用LINE应用给相关频道发送消息。以下功能都已经在示例代码中实现了。

输入「profile」,获取用户配置文件。

Screen Shot 2021-07-18 at 20.07.26.png

输入「按钮」并发送模板消息

Screen Shot 2021-07-18 at 20.07.49.png

输入”confirm”,发送模板消息

Screen Shot 2021-07-18 at 20.10.28.png

输入”旋转木马”并发送模板信息。

Screen Shot 2021-07-18 at 20.08.08.png

输入“imagemap”,发送图像地图消息

Screen Shot 2021-07-18 at 20.08.21.png

邀请LINE公式账号进入群聊,并输入“再见”。

可以将LINE官方账号从群聊中移除。

请将图片、音频、视频、位置信息等发送至LINE公式账号。

机器人会获取这些内容并发送相同的内容回来。

源代码

ファイル処理内容KitchenSinkApplication.javaメインのクラスKitchenSinkController.javacontroller。テキスト、スタンプ、画像投稿など様々な投稿方法ごとの返信処理の窓口ExampleFlexMessageSupplier.javaFlexMessage用MessageWithQuickReplySupplier.javaquickReply用KitchenSinkWebMvcConfigurer.java

Gradle的版本太低。

如果需要,可以升级Gradle版本至6.7.1,所以请参考下方提供的示例代码。

$ ./gradlew -v

------------------------------------------------------------
Gradle 6.7.1
------------------------------------------------------------

Build time:   2020-11-16 17:09:24 UTC
Revision:     2972ff02f3210d2ceed2f1ea880f026acfbab5c0

Kotlin:       1.3.72
Groovy:       2.5.12
Ant:          Apache Ant(TM) version 1.10.8 compiled on May 10 2020
JVM:          13.0.2 (Oracle Corporation 13.0.2+8)
OS:           Mac OS X 10.14.6 x86_64

有关

在Heroku上使用Spring Boot + JPA + Flyway来创建LINE Bot

请参考。

    • Herokuでサンプルボットを作成する

 

    https://github.com/line/line-bot-sdk-java
广告
将在 10 秒后关闭
bannerAds