Перейти к основному содержимому

Reply с использованием Слеш-Комманд

Пример использования слеш-команды, которая будет отвечать пользователю с отправленным текстом. В примере слеш-команда взаимодействует через GET запрос.

После этого интеграция создаст эфемерное сообщение:

  • Имя отправителя сообщения будет My SlashCommand (указывается в запросе)
  • Текст сообщения будет содержать имя отправившего команду пользователя и приложенный текст
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
)
type CommandResponse struct {
Text string `json:"text"`
Username string `json:"username"`
ChannelId string `json:"channel_id"`
}
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
query := r.URL.Query()
channelID := query.Get("channel_id")
username := query.Get("user_name")
commandText := query.Get("text")

responseJson, err := json.Marshal(CommandResponse{
Text: fmt.Sprintf("Hello, %s!\nInput text: %s", username, commandText),
Username: "My SlashCommand",
ChannelId: channelID,
})
if err != nil {
http.Error(w, "Error marshalling response", http.StatusInternalServerError)
return
}

w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
w.Write(responseJson)
})

log.Fatal(http.ListenAndServe(":8090", nil))
}