Post to Slack von Play Framework 2.8 (Java)

Überblick

Verwendung der Slack-API mit Play Framework 2.8. Implementieren Sie eine einfache Buchungsfunktion.

Verwenden Sie den offiziellen Java-Client von Slack, der die Verwendung der Web-API von Slack vereinfacht.

Es ist ein Artikel, der darauf abzielt, den Inhalt des offiziellen Artikels mit Play Framework zu üben. https://slack.dev/java-slack-sdk/guides/ja/web-api-basics

Vorbereitung

Ein Projekt erstellen

Auslassen. Bereiten Sie ein leeres Projekt mit der Play Framework Java-Vorlage vor.

Abhängigkeitsbeschreibung

Der offizielle Slack bietet einen Client, der die Handhabung der Web-API von Slack in Java vereinfacht. Wir werden dies in dem zuvor erstellten Projekt installieren.

↓ Offizielle Seite zum Setup https://slack.dev/java-slack-sdk/guides/ja/web-api-client-setup

Die offizielle Seite zeigt, wie Sie es mit Maven in einem Projekt installieren, das Play Framework verwendet jedoch Maven2, und Sie können es mit einer einfachen Beschreibung installieren.

Öffnen Sie `` `build.sbt``` im obersten Verzeichnis der Projektdatei und fügen Sie die folgenden Abhängigkeiten hinzu.

build.sbt


libraryDependencies += "com.slack.api" % "slack-api-client" % "1.0.8"

Der Inhalt der Abhängigkeit besteht aus der Gruppen-ID, der Artefakt-ID und der Version von links. Ändern Sie sie daher nach Bedarf.

Das ist alles für die Vorbereitung des Play Framework-Projekts. Der Client wird beim ersten Kompilieren automatisch heruntergeladen und installiert. Danach können Sie den Client mit der Importanweisung in der Java-Datei verwenden.

Holen Sie sich Token

Diesmal ist es die Einstellung auf der Slack-Seite. Token werden sozusagen vom Slack-Arbeitsbereich ausgegeben, "eine Erlaubnis, die Sie bei Bedarf an Slack senden können". Mit dieser Zeichenfolge können Sie auf Slack posten.

Ich werde die Details weglassen,

--Erstellen einer neuen Anwendung

Sie können Token ausgeben, indem Sie dies tun.

Es gibt zwei Arten von Token: Bots und Benutzer, aber es spielt keine Rolle, ob Sie nur versuchen, etwas zu veröffentlichen. Der Bereich erfordert "Chat: Schreiben".

Bitte beachten Sie die offizielle Seite unten.

https://slack.com/intl/ja-jp/help/articles/115005265703-%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%81%A7%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E3%83%9C%E3%83%83%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90 https://slack.com/intl/ja-jp/help/articles/215770388-API-%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%81%AE%E7%94%9F%E6%88%90%E3%81%A8%E5%86%8D%E7%94%9F%E6%88%90

Kanaleinstellungen

Fügen Sie die Anwendung dem Kanal hinzu, den Sie veröffentlichen möchten. Es kann über die Slack-Anwendung eingestellt werden.

Implementierung

Dieses Mal wird es der Einfachheit halber in der Indexmethode von `` `HomeController.java``` beschrieben, die beim Start ausgeführt wird. Wenn Sie eine tatsächliche Anwendung erstellen, schreiben Sie sie in ein Modell oder etwas anderes.

HomeController.java


package controllers;
import com.slack.api.model.Message;
import play.mvc.*;
import com.slack.api.Slack;
import java.io.IOException;
import com.slack.api.methods.response.chat.ChatPostMessageResponse;
import com.slack.api.methods.MethodsClient;
import com.slack.api.methods.request.chat.ChatPostMessageRequest;
import com.slack.api.methods.SlackApiException;

public class HomeController extends Controller {

  public Result index() {
    Slack slack = Slack.getInstance();
    String token = "Token-Zeichenfolge";
    MethodsClient methods = slack.methods(token);
    ChatPostMessageRequest request = ChatPostMessageRequest.builder().channel("#general").text(":wave: Hi from a bot written in Java!").build();

    try {
      ChatPostMessageResponse response = slack.methods(token).chatPostMessage(request);
      if (response.isOk()) {
        Message postedMessage = response.getMessage();
        System.out.println("Erfolg");
      } else {
        String errorCode = response.getError();
        System.out.println("Fehler 1"+errorCode);
      }
    } catch (SlackApiException requestFailure) {
      System.out.println("Fehler 2");
    } catch (IOException connectivityIssue) {
      System.out.println("Fehler 3");
    }
    return ok(views.html.index.render());
  }

}

Es ist in Ordnung, wenn das erworbene Token im Zeichenfolgenteil des Tokens enthalten ist. Die offizielle Seite verwendet eine Methode, um das in der Umgebungsvariablen gespeicherte Token abzurufen. Eine direkte Eingabe kommt nicht in Frage der Vielseitigkeit und Sicherheit, also nicht ** absolut ** in einer realen Anwendung.

Als Fluss,

Ich fühle mich wie.

Da die Anforderung gemäß der Slack Web-API generiert wird, sollte es leicht zu verstehen sein, wie die Anforderung generiert wird.

Wenn Sie keine Ausnahmebehandlung schreiben, werden Sie zur Laufzeit gewarnt. Schreiben Sie sie daher unter Bezugnahme auf die offizielle Seite.

Hoffentlich sehen Sie zur Laufzeit "Erfolg" auf der Konsole und es wird auf dem angegebenen Kanal veröffentlicht. Wenn dies fehlschlägt, überprüfen Sie den Fehler anhand des offiziellen Dokuments. In meinem Fall wurde eine Fehlermeldung angezeigt, dass das Token nicht richtig gesetzt und der Buchungskanal falsch angegeben wurde.

Zusammenfassung

Recommended Posts

Post to Slack von Play Framework 2.8 (Java)
Spielen Sie Framework2.5 (Java) -Tipps
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Von Java zu Ruby !!
Migration von Cobol nach JAVA
Neue Funktionen von Java7 bis Java8
Stellen Sie eine Verbindung von Java zu PostgreSQL her
Einführung von Dozer to Play Framework
Von ineffektivem Java zu effektivem Java
Verwendung von HttpClient (Post) von Java
Erstellung der Play Framework 2.6 (Java) -Entwicklungsumgebung
Java soll ab heute dabei sein
Von Java zu VB.NET-Writing Kontrastmemo-
Java, Schnittstelle für Anfänger
Der Weg von JavaScript nach Java
[Java] Konvertierung von Array zu Liste
Java-Framework
Einfach, Slack Bot mit Java zu machen
So installieren Sie Play Framework 2.6 für Mac
Verwendung von BootStrap mit Play Framework
Konvertieren Sie von der Java-UTC-Zeit in die JST-Zeit
Spielen Sie die Framework 2.6 (Java) -Umgebungskonstruktion mit Eclipse
Von der Installation von Eclipse bis zur Ausführung von Java (PHP)
Java: So senden Sie Werte von Servlet zu Servlet
[Java] Fluss vom Quellcode zur Ausführung
Einführung in die Überwachung von Java Touching Prometheus
Vorsichtsmaßnahmen bei der Migration von VB6.0 auf JAVA
Memo für die Migration von Java nach Kotlin
Typkonvertierung vom Java Big Decimal-Typ zum String-Typ
[Java] Von zwei Listen zu einer Array-Liste
Upsert von Java SDK zu Azure Cosmos DB
R von Java ausführen Ich möchte rJava ausführen
POST-Bilder von Android auf PHP mit Retrofit
Stellen Sie über eine Java-Anwendung eine Verbindung zu Aurora (MySQL) her
Migrieren Sie von Java zu Server Side Kotlin + Spring-Boot
Verwendung des Java-Frameworks mit AWS Lambda! ??
So erhalten Sie eine Klasse von Element in Java
Spielen Sie die Framework-Studie
Java Framework Vergleich
[Java] Einführung in Java
[Java] So wechseln Sie von Open JDK zu Oracle JDK
Ich möchte mit Firestore von Rails spielen
Ich möchte schnell von Java nach SQLite schreiben
Einführung in Java
Minecraft BE Serverentwicklung von PHP nach Java
Wählen Sie * aus dem Java SDK in Azure Cosmos DB
[Java] Sammlungsframework
Starten Sie Docker von Java aus, um Office-Dokumente in PDF zu konvertieren
Konvertieren Sie Java Enum Enumeration und JSON von und nach Jackson
[Swift] So spielen Sie Songs aus der Musikbibliothek ab
[Java] Ich möchte die Differenz zum Datum berechnen
So springen Sie von Eclipse Java zu einer SQL-Datei
Wie schreibe ich Scala aus der Perspektive von Java
So stellen Sie Java mit Serverless Framework für AWS Lambda bereit
[Java] Wie man aus Janken rauskommt (entspricht Paiza Rang A)
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
6 Funktionen, die ich nach meiner Rückkehr von Scala nach Java verpasst habe
So wechseln Sie von Oracle Java 8 zu Adopt Open JDK 9
[Java] So löschen Sie ein bestimmtes Zeichen aus einer Zeichenfolge