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
Auslassen. Bereiten Sie ein leeres Projekt mit der Play Framework Java-Vorlage vor.
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.
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
Fügen Sie die Anwendung dem Kanal hinzu, den Sie veröffentlichen möchten. Es kann über die Slack-Anwendung eingestellt werden.
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.
Recommended Posts