[LINE BOT] J'ai créé un Ramen BOT avec Java (Maven) + Heroku + Spring Boot (1)

Créez une fonction de réponse en connectant Heroku et LINE API!

Je veux faire un Ramen BOT en utilisant l'API LINE! alors Tout d'abord, créez un bot "echo" qui renvoie les perroquets à l'aide du SDK Java LINE Bot. ▼ Mis en œuvre avec référence à l'URL suivante "Créer un exemple de bot avec Heroku" https://developers.line.me/ja/docs/messaging-api/building-sample-bot-with-heroku/

Les outils utilisés

API de messagerie LINE

procédure

  1. Configurer l'API de messagerie LINE
  2. Configurer Heroku
  3. Générer le projet Maven
  4. Déployer sur Heroku

Créer un projet Maven

1.pom.xml

pom.xml


.
.
.

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
	</parent>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>
    
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
		</dependency>
		<dependency>
			<groupId>com.linecorp.bot</groupId>
			<artifactId>line-bot-api-client</artifactId>
			<version>1.12.0</version>
			<scope>compile</scope>
			<exclusions>
				<exclusion>
					<artifactId>commons-logging</artifactId>
					<groupId>commons-logging</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.linecorp.bot</groupId>
			<artifactId>line-bot-model</artifactId>
			<version>1.12.0</version>
			<scope>compile</scope>
			<exclusions>
				<exclusion>
					<artifactId>commons-logging</artifactId>
					<groupId>commons-logging</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.linecorp.bot</groupId>
			<artifactId>line-bot-spring-boot</artifactId>
			<version>1.11.0</version>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

2.application.yml Le jeton d'accès et le secret de canal sont générés lorsque vous créez un nouveau canal avec l'API de messagerie LINE

application.yml


line.bot:
  channel-token: 'AcccessToken'
  channel-secret: 'Channel Secret'
  handler.path: /callback

3.Procfile ★ ☆ Point ☆ ★

  1. Générez un fichier sous le répertoire racine
  2. Le nom du fichier est "Procfile" * Le premier "P" est en majuscule! https://devcenter.heroku.com/articles/procfile

Procfile


web: java $JAVA_OPTS -jar target/{APPNAME}-0.0.1-SNAPSHOT.jar --server.port=$PORT

4.App.java J'ai copié le code du Java LINE Bot SDK.

App.java


@SpringBootApplication
@LineMessageHandler
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
		System.out.println("hello");
	}

	@EventMapping
	public TextMessage handleTextMessageEvent(MessageEvent<TextMessageContent> event) {
		System.out.println("event: " + event);
		return new TextMessage(event.getMessage().getText());
	}

	@EventMapping
	public void handleDefaultMessageEvent(Event event) {
		System.out.println("event: " + event);
	}
}

Déployez-vous sur Heroku!

//Génération de référentiel local, validation
$ git init
$ git add -A  
$ git commit

//Connectez-vous à heroku depuis l'outil CLI
$ heroku login

//Génération d'applications Web dans Heroku (un référentiel distant est également généré à ce moment)
$ heroku create APPNAME 

//Lier des référentiels locaux et distants
$ heroku git:remote --app APPNAME 

git push heroku master

Paramètres du webhook

・ Envoyer Webhook ⇒ Utiliser ・ URL du Webhook ⇒ https: // {APPNAME} .herokuapp.com / callback {APPNAME} est le nom de l'application que vous avez créée

無題.png

** OK si la connexion est confirmée avec succès! !! ** **

Vous avez maintenant implémenté la fonction de réponse! !!

Je pensais que c'était facile, mais j'ai eu du mal parce que l'API de message LINE et heroku ne se sont pas connectés. Veuillez vous y référer ☆ La prochaine fois, nous implémenterons Ramen BOT.

Recommended Posts

[LINE BOT] J'ai créé un Ramen BOT avec Java (Maven) + Heroku + Spring Boot (1)
[Java] Intégration LINE avec Spring Boot
J'ai créé un formulaire de recherche simple avec Spring Boot + GitHub Search API.
Procédure de construction de LINE Bot x Java (Spring Boot)
J'ai écrit un test avec Spring Boot + JUnit 5 maintenant
J'ai créé un système d'exemple MVC simple à l'aide de Spring Boot
J'ai créé une application shopify @java
J'ai essayé GraphQL avec Spring Boot
J'ai créé une interface de ligne de commande avec WinMerge Plugin en utilisant JD-Core
J'ai essayé d'implémenter un client OAuth avec Spring Boot / Security (connexion LINE)
Hello World avec Eclipse + Spring Boot + Maven
J'ai fait une mort risquée avec Ruby
J'ai essayé l'initialisation paresseuse avec Spring Boot 2.2.0
J'ai créé une application Janken avec kotlin
J'ai créé un nouvel outil de déploiement Java
J'ai créé une application Janken avec Android
[Java] Déployer une application Web créée avec Eclipse + Maven + Ontology avec Heroku
J'ai créé un outil Diff pour les fichiers Java
J'ai créé un programme de jugement des nombres premiers en Java
Créez un site Web avec Spring Boot + Gradle (jdk1.8.x)
Configurer l'application Spring Boot avec le module multiple maven
Créez une application de recherche simple avec Spring Boot
04. J'ai fait un frontal avec SpringBoot + Thymeleaf
J'ai fait de l'art de la mosaïque avec des images Pokemon
J'ai créé un jeu Janken en Java (CLI)
J'ai créé un conteneur Docker pour exécuter Maven
Conseils Java - Créez un projet Spring Boot avec Gradle
Apprendre Java avec Progate → Je vais vous expliquer parce que j'ai moi-même créé un jeu de base
[Java] Hello World avec Java 14 x Spring Boot 2.3 x JUnit 5 ~
[Java] Article pour ajouter une validation avec Spring Boot 2.3.1.
Je voulais classer la botte à ressort dans un multi-projet
J'ai essayé de cloner une application Web pleine de bugs avec Spring Boot
Facile à créer LINE BOT avec Java Servlet
Créer un serveur API Web avec Spring Boot
J'ai essayé de casser le bloc avec java (1)
Déployer le bot Line avec rails5 + Docker + Heroku Note
Créer un environnement de développement Spring Boot avec docker
J'ai fait un portfolio avec Ruby On Rails
J'ai essayé de créer une fonction / écran d'administrateur de site commercial avec Java et Spring
Ce à quoi j'étais accro lors du développement d'une application Spring Boot avec VS Code
J'ai créé une fonction pour enregistrer des images avec l'API dans Spring Framework. Partie 1 (édition API)
Inclure le pot externe dans le package avec Spring boot2 + Maven3
J'ai fait un jeu de problèmes de calcul simple en Java
[Java] [Spring Boot] Spécifier le profil d'exécution --Spring Boot à partir de NetBeans
Faisons un Bot LINE avec Ruby + Sinatra - Partie 2
[Compatible JUnit 5] Ecrire un test en utilisant JUnit 5 avec Spring boot 2.2, 2.3
[Ruby] J'ai fait un robot avec de l'anémone et du nokogiri.
Implémentez une API Rest simple avec Spring Security avec Spring Boot 2.0
[JUnit 5] Ecrivez un test de validation avec Spring Boot! [Test de paramétrage]
J'ai créé un serveur et un client Restful au printemps.
J'ai essayé OCR de traiter un fichier PDF avec Java
Un mémorandum lors de la création d'un service REST avec Spring Boot
Créez un site de démonstration simple avec Spring Security avec Spring Boot 2.1
J'ai créé un Wrapper qui appelle KNP depuis Java
Nginx + Spring Boot Parrot Return LineBot fait avec VPS
Comment démarrer par environnement avec Spring Boot de Maven
Faisons un Bot LINE avec Ruby + Sinatra - Partie 1
[Java] Comment rompre une ligne avec StringBuilder
Botte de printemps + Heroku Postgres