Publier sur Slack à partir de Play Framework 2.8 (Java)

Aperçu

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

Préparation

Créer un projet

Omettre. Préparez un projet vide à l'aide du modèle Java Play Framework.

Description de la dépendance

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.

Obtenir des jetons

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

Paramètres de chaîne

Ajoutez l'application à la chaîne que vous souhaitez publier. Il peut être défini depuis l'application Slack.

la mise en oeuvre

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.

Résumé

Recommended Posts

Publier sur Slack à partir de Play Framework 2.8 (Java)
Conseils pour Play Framework2.5 (Java)
Changements de Java 8 à Java 11
Somme de Java_1 à 100
De Java à Ruby !!
Migration de Cobol vers JAVA
Nouvelles fonctionnalités de Java7 à Java8
Connectez-vous de Java à PostgreSQL
Introduction de Dozer to Play Framework
De Java inefficace à Java efficace
Comment utiliser HttpClient de Java (Post)
Création de l'environnement de développement Play Framework 2.6 (Java)
Java sera impliqué dès aujourd'hui
De Java à VB.NET - Écriture de notes de contraste
Java, interface pour partir du débutant
La route de JavaScript à Java
[Java] Conversion d'un tableau à une liste
framework java
Facile à créer Slack Bot avec Java
Comment installer Play Framework 2.6 pour Mac
Comment utiliser BootStrap avec Play Framework
Convertir l'heure UTC Java en heure JST
Construction de l'environnement Play Framework 2.6 (Java) avec Eclipse
De l'installation d'Eclipse à l'exécution de Java (PHP)
Java: Comment envoyer des valeurs du servlet au servlet
[Java] Flux du code source à l'exécution
Introduction à la surveillance à partir de Java Touching Prometheus
Précautions lors de la migration de VB6.0 vers JAVA
Mémo pour la migration de Java vers Kotlin
Conversion de type du type java Big Decimal au type String
[Java] De deux listes à une liste de tableaux
Upsert du SDK Java vers Azure Cosmos DB
Exécuter R à partir de Java Je veux exécuter rJava
POST des images d'Android vers PHP en utilisant Retrofit
Connectez-vous à Aurora (MySQL) depuis une application Java
Migrer de Java vers Kotlin côté serveur + Spring-boot
Comment utiliser le framework Java avec AWS Lambda! ??
Comment obtenir une classe depuis Element en Java
Etude Play Framework
Comparaison du framework Java
[Java] Introduction à Java
[Java] Comment passer de jdk ouvert à jdk oracle
Je veux jouer avec Firestore de Rails
Je veux écrire rapidement de java vers sqlite
Introduction à Java
Développement de serveur Minecraft BE de PHP à Java
Sélectionnez * de Java SDK vers Azure Cosmos DB
[Java] Cadre de collection
Lancez Docker à partir de Java pour convertir des documents Office en PDF
Convertir l'énumération Java et JSON vers et depuis Jackson
[Swift] Comment lire des chansons de la bibliothèque musicale
[Java] Je souhaite calculer la différence par rapport à la date
Comment passer d'Eclipse Java à un fichier SQL
Comment écrire Scala du point de vue de Java
Comment déployer Java sur AWS Lambda avec Serverless Framework
[Java] Comment sortir de Janken (équivalent à paiza rang A)
[Java] Comment extraire le nom du fichier du chemin
6 fonctionnalités que j'ai manquées après mon retour de Scala à Java
Comment passer d'Oracle Java 8 à Adopt Open JDK 9
[Java] Comment effacer un caractère spécifique d'une chaîne de caractères