Comment utiliser l'API Slack avec Play Framework 2.8. Implémentez une fonction de publication simple.
Utilisez le client Java officiel de Slack, qui facilite l'utilisation de l'API Web de Slack.
Cet article vise à mettre en pratique le contenu de l'article officiel avec le Play Framework. https://slack.dev/java-slack-sdk/guides/ja/web-api-basics
Omettre. Préparez un projet vide à l'aide du modèle Java Play Framework.
Le responsable Slack fournit un client pour gérer facilement l'API Web de Slack en Java. Nous allons l'installer dans le projet que nous avons créé précédemment.
↓ Page officielle sur la configuration https://slack.dev/java-slack-sdk/guides/ja/web-api-client-setup
La page officielle montre comment l'installer dans un projet utilisant Maven, mais Play Framework utilise Maven2, vous pouvez donc l'installer avec une description simple.
Ouvrez
build.sbt``` dans le répertoire supérieur du fichier projet et ajoutez les dépendances suivantes.
build.sbt
libraryDependencies += "com.slack.api" % "slack-api-client" % "1.0.8"
Le contenu de la dépendance est l'ID de groupe, l'ID d'artefact et la version à gauche, donc modifiez-les si nécessaire.
C'est tout pour la préparation du projet Play Framework. Le client sera téléchargé et installé automatiquement lorsque vous compilerez pour la première fois. Après cela, vous pouvez utiliser le client avec l'instruction d'importation dans le fichier java.
Cette fois, c'est le réglage du côté Slack. Les jetons sont émis par l'espace de travail Slack, pour ainsi dire, "un permis que vous pouvez publier sur Slack si vous en avez". Avec cette chaîne, vous pouvez publier sur Slack.
Je vais omettre les détails,
--Création d'une nouvelle application
Vous pouvez émettre des jetons en faisant.
Il existe deux types de jetons: les bots et les utilisateurs, mais peu importe si vous essayez simplement de publier. La portée nécessite `` chat: write ''.
Veuillez vous référer à la page officielle ci-dessous.
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
Ajoutez l'application à la chaîne que vous souhaitez publier. Il peut être défini depuis l'application Slack.
Cette fois, par souci de simplicité, il est décrit dans la méthode d'index de `` HomeController.java '' qui est exécutée au démarrage. Lors de la création d'une application réelle, écrivez-la dans un modèle ou quelque chose.
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 = "Chaîne de jeton";
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("Succès");
} else {
String errorCode = response.getError();
System.out.println("Échec 1"+errorCode);
}
} catch (SlackApiException requestFailure) {
System.out.println("Échec 2");
} catch (IOException connectivityIssue) {
System.out.println("Échec 3");
}
return ok(views.html.index.render());
}
}
Ce n'est pas grave si le jeton acquis est inclus dans la partie chaîne de caractères du jeton. La page officielle utilise une méthode pour acquérir le jeton stocké dans la variable d'environnement. Entrer directement n'est pas une question de polyvalence et de sécurité, alors ne faites pas ** absolument ** dans une application réelle.
En tant que flux,
--Initialisation de l'instance Slack
Je me sens comme.
Étant donné que la demande est générée conformément à l'API Web Slack, il devrait être facile de comprendre comment générer la demande.
Si vous n'écrivez pas la gestion des exceptions, vous serez averti lors de l'exécution, veuillez donc l'écrire en vous référant à la page officielle.
J'espère qu'au moment de l'exécution, vous verrez
succès '' '' sur la console et il sera publié sur le canal spécifié.
En cas d'échec, veuillez vérifier l'erreur en vous référant au document officiel.
Dans mon cas, j'obtenais une erreur indiquant que le jeton n'était pas défini correctement et que le canal de publication était spécifié de manière incorrecte.
Recommended Posts