Here’s a simple example of how to send a message from Go via Telegram:
package main import ( "bytes" "fmt" "net/http" "encoding/json" ) func send(text string, bot string, chat_id string) { request_url := "https://api.telegram.org/" + bot + "/sendMessage" client := &http.Client{} values := map[string]string{"text": text, "chat_id": chat_id } json_paramaters, _ := json.Marshal(values) req, _:= http.NewRequest("POST", request_url, bytes.NewBuffer(json_paramaters)) req.Header.Set("Content-Type", "application/json") res, err := client.Do(req) if(err != nil){ fmt.Println(err) } else { fmt.Println(res.Status) defer res.Body.Close() } } func main() { send("hello telegram", "bot<TOKEN>", "<CHAT_ID>") } // main
[j@us:1~]$ go run zsend.go 200 OK [j@us:1 ~]$
For testing it might be easier to use curl:
curl -v -X POST -H 'Content-Type: application/json' -d '{"chat_id": "<CHAT_ID>", "text": "hello telegram"}' https://api.telegram.org/bot<TOKEN>/sendMessage
Amazing post!!
I appreciate the fact that you have explained all the information in depth.
Well researched & well-listed posts, especially those who didn’t know how to send a telegram alert message using Go, they will get support for sure. Keep focusing on such topics.
Thanks for sharing such a valuable post.