[JAVA] Senden Sie regelmäßige Benachrichtigungen mit LineNotify + Spring Boot

zunaechst

Ich möchte regelmäßig über bestimmte Informationen informiert werden, wenn ich eine Webanwendung mit SpringBoot erstelle! !! !! Als Ergebnis der Untersuchung der Denkmethode konnte ich sie unerwartet leicht umsetzen und habe sie zusammengefasst.

Ausführungsumgebung

① Holen Sie sich ein Zugriffstoken auf der offiziellen Seite von LINE Notify

Greifen Sie auf die unten stehende URL zu, lesen Sie den angezeigten QR-Code und fügen Sie LINE Notify als Freund hinzu.

https://notify-bot.line.me/ja/

Nachdem Sie sich mit Ihrem LINE-Konto auf derselben Seite angemeldet haben, gehen Sie anschließend zu "Meine Seite" → "Zugriffstoken ausstellen". Geben Sie den Token-Namen ein (wird oben in der Nachricht angezeigt, wenn die Nachricht tatsächlich über LINE benachrichtigt wird) und wählen Sie einen beliebigen Gesprächsraum aus, in dem das Token angezeigt werden soll.

Bitte beachten Sie, dass der Token *** einmal *** angezeigt wird. Sie können jedoch so viele ausgeben, wie Sie möchten. Machen Sie sich also keine Sorgen.

② Erstellen Sie eine Klasse zum Senden von Benachrichtigungen

Erstellen Sie eine Bean, die im DI-Container registriert werden soll, um Benachrichtigungen an LINE zu senden. Es sind keine besonderen Abhängigkeiten erforderlich.

LineNotify.java



@Component
public class LineNotify {
    public void executeNotification() {
         String message = "Nachricht, die Sie senden möchten";
         String token = "Token erhalten";
        
	     sendNotification(message,token);
	}

	public void sendNotification(String message, String token) {
		HttpURLConnection connection = null;
		try {
			URL url = new URL("https://notify-api.line.me/api/notify");
			connection = (HttpURLConnection) url.openConnection();
			connection.setDoOutput(true);
			connection.setRequestMethod("POST");
			connection.addRequestProperty("Authorization", "Bearer " + token);
			try (OutputStream outputStream = connection.getOutputStream();
					PrintWriter writer = new PrintWriter(outputStream)) {
				writer.append("message=").append(URLEncoder.encode(message, "UTF-8")).flush();
			}
		} catch (Exception e) {
		} finally {
			if (connection != null) {
				connection.disconnect();
			}
		}
    }
}

Übergeben Sie die Nachricht und das Token, die Sie senden möchten, an das Argument der sendNotification-Methode und führen Sie die POST-Kommunikation an die angegebene URL aus. Die OAuth-Authentifizierung ist erforderlich, um Benachrichtigungen mit LINE Notify zu senden. Die Authentifizierung wird jedoch ausgeführt, indem dem Anforderungsheader in der Methode "Authorization: Bearer <access_token>" hinzugefügt wird.

③ Einstellungen für das regelmäßige Senden von Benachrichtigungen

So aktivieren Sie die geplante Taskausführungsfunktion Verwenden Sie die Annotation @ EnableScheduling für die Hauptklasse.

Application.java



@SpringBootApplication
@EnableScheduling //···hinzufügen
public class Application {
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

Auf diese Weise können Sie jede Bean in einem DI-Container erkennen, die die Annotation "@ Scheduled" verwendet. Kehren wir also zu der Klasse zurück, die die Benachrichtigungsfunktion implementiert hat, und fügen Sie der Methode, die wir tatsächlich regelmäßig ausführen möchten, eine Anmerkung hinzu.

LineNotify.java



@Component
public class LineNotify {
    @Scheduled(cron = "0 * * * * *", zone = "Asia/Tokyo") //···hinzufügen
    public void executeNotification() {
         String message = "Nachricht, die Sie senden möchten";
         String token = "Token erhalten";
        
	     sendNotification(message,token);
	}

     ...

Sobald dies erledigt ist, müssen Sie nur noch den Server starten und die Aufgabe wird ausgeführt und Sie werden benachrichtigt.

cron gibt den Zyklus für die Ausführung von Aufgaben an, und zone gibt die Zeitzone an. Von links kann cron Trigger für" Sekunden, Minuten, Stunden, Monate, Tage, Tage "setzen, und der obige Beispielcode ist so eingestellt, dass die Aufgabe mit 0 Sekunden pro Minute ausgeführt wird. Zum Beispiel, wenn Sie jeden Tag um 9:00:00 Uhr eine Aufgabe ausführen möchten Stellen Sie so etwas wie "cron = "0 0 9 * * *"" ein.

Es gibt andere Optionen wie "initialDelay", das die Ausführung n Sekunden nach dem Start der Anwendung angibt, und "fixedDelay", das die Ausführung n Sekunden nach Abschluss der Ausführung des Methodenprozesses angibt, sodass Sie sie relativ frei anpassen können. tun können.

Referenz

Benachrichtigung durch LINE Benachrichtigung von Java in 5 Minuten implementiert ・ So führen Sie Aufgaben regelmäßig mit Spring Boot aus

Recommended Posts

Senden Sie regelmäßige Benachrichtigungen mit LineNotify + Spring Boot
Mail mit Spring Boot verschicken
Mit Spring Boot herunterladen
Asynchrone Verarbeitung mit regelmäßiger Ausführung in Spring Boot
Hallo Welt mit Spring Boot
Implementieren Sie GraphQL mit Spring Boot
Beginnen Sie mit Spring Boot
Hallo Welt mit Spring Boot!
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Datei-Upload mit Spring Boot
Spring Boot beginnt mit dem Kopieren
Spring Boot beginnend mit Docker
Hallo Welt mit Spring Boot
Setzen Sie Cookies mit Spring Boot
Verwenden Sie Spring JDBC mit Spring Boot
Modul mit Spring Boot hinzufügen
Erste Schritte mit Spring Boot
[Spring Boot] Senden Sie eine E-Mail
Erstellen Sie mit Spring Boot einen Mikrodienst
Verwenden Sie die Standardauthentifizierung mit Spring Boot
gRPC auf Spring Boot mit grpc-spring-boot-Starter
Erstellen Sie eine App mit Spring Boot 2
Hot Deploy mit Spring Boot-Entwicklung
Datenbankverknüpfung mit doma2 (Spring Boot)
Spring Boot Programmierung mit VS Code
Bis "Hallo Welt" mit Spring Boot
Erstellen Sie eine Anfrage-App mit Spring Boot
Erhalten Sie Validierungsergebnisse mit Spring Boot
(Intellij) Hallo Welt mit Spring Boot
Erstellen Sie eine App mit Spring Boot
Google Cloud Platform mit Spring Boot 2.0.0
Ich habe GraphQL mit Spring Boot ausprobiert
[Java] LINE-Integration mit Spring Boot
Beginnend mit Spring Boot 0. Verwenden Sie Spring CLI
Ich habe Flyway mit Spring Boot ausprobiert
Die Nachrichtenkooperation begann mit Spring Boot
Verarbeitung beim Starten einer Anwendung mit Spring Boot
Hallo Welt mit Eclipse + Spring Boot + Maven
Führen Sie einen Transaktionsbestätigungstest mit Spring Boot durch
HTTPS mit Spring Boot und Let's Encrypt
Versuchen Sie es mit Spring Boot mit VS-Code
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
Starten Sie die Nginx + Spring Boot-Anwendung mit Docker-Compose
Ich habe Lazy Initialization mit Spring Boot 2.2.0 ausprobiert
Implementieren Sie CRUD mit Spring Boot + Thymeleaf + MySQL
Asynchrone Verarbeitung mit Spring Boot unter Verwendung von @Async
Implementieren Sie die Paging-Funktion mit Spring Boot + Thymeleaf
(IntelliJ + gradle) Hallo Welt mit Spring Boot
Verwenden Sie den Cache mit EhCashe 2.x mit Spring Boot
Formularklassenvalidierungstest mit Spring Boot
Führen Sie die WEB-Anwendung mit Spring Boot + Thymeleaf aus
Erreichen Sie die BASIC-Authentifizierung mit Spring Boot + Spring Security
Erstellen Sie eine Website mit Spring Boot + Gradle (jdk1.8.x)
Konfigurieren Sie die Spring Boot-Anwendung mit dem Maven Multi-Modul
Testen Sie den Controller mit Mock MVC im Spring Boot
Erstellen Sie mit Spring Boot eine einfache Such-App
Hash-Passwörter mit Spring Boot + Spring Security (mit Salt, mit Stretching)