59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/joho/godotenv"
|
|
"io"
|
|
"net/http"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
|
|
if len(os.Args) < 2 {
|
|
fmt.Println("Usage: ./go-google-space <message>")
|
|
return
|
|
}
|
|
userMessage := os.Args[1]
|
|
|
|
client := &http.Client{}
|
|
|
|
err := godotenv.Load()
|
|
if err != nil {
|
|
fmt.Println("Error loading .env file")
|
|
}
|
|
|
|
chatSpaceID := os.Getenv("SPACE_ID")
|
|
key := os.Getenv("KEY")
|
|
token := os.Getenv("TOKEN")
|
|
url := fmt.Sprintf("https://chat.googleapis.com/v1/spaces/%s/messages?key=%s&token=%s", chatSpaceID, key, token)
|
|
|
|
message := map[string]string{"text": userMessage}
|
|
messageJson, err := json.Marshal(message)
|
|
if err != nil {
|
|
fmt.Println("Error marshalling message")
|
|
}
|
|
|
|
req, err := http.NewRequest("POST", url, bytes.NewBuffer(messageJson))
|
|
if err != nil {
|
|
fmt.Println("Error creating request")
|
|
return
|
|
}
|
|
|
|
req.Header.Add("Content-Type", "application/json; charset=UTF-8")
|
|
|
|
resp, err := client.Do(req)
|
|
if err != nil {
|
|
fmt.Println("Error sending request")
|
|
return
|
|
}
|
|
defer func(Body io.ReadCloser) {
|
|
err := Body.Close()
|
|
if err != nil {
|
|
fmt.Println("Error closing response body")
|
|
}
|
|
}(resp.Body)
|
|
}
|