从Golang AppEngine快速轻松地发布到Slack Webhook

时间:2019-04-13 09:22:27

标签: google-app-engine go post slack

与其说是对其他人的帮助,不如说是一个问题。做了很多事情我的头靠在墙上以完成这项工作。 (就我对golang的热爱而言,您的想法确实有所不同)-这也将作为在AppEngine中向外部源进行任何形式发布的通用方法。

这是我用来通过webhook将简单消息发布到松弛通道的功能。 (假设您知道如何轻松地设置Webhook-非常容易-https://get.slack.help/hc/en-us/articles/115005265063-Incoming-WebHooks-for-Slack)-注意:虽然有很多附加参数,但您可以在json消息中传递(请参见上面的链接)简单的事情如果将电子邮件地址和图片网址/网址(例如“网址”)传递给“文本”参数,则会自动将其解析为松弛状态。

import (
"bytes"
"google.golang.org/appengine"
"google.golang.org/appengine/urlfetch"
"net/http"
)

func postSlackBetaSignup(req *http.Request, msg string) string {

ctx := appengine.NewContext(req);
request := urlfetch.Client(ctx);
data := []byte("{'text': '" + msg + "'}");
body := bytes.NewReader(data);
resp, err := request.Post("https://hooks.slack.com/services/<<<YOUR WEBHOOK HERE>>>", "application/json", body);
if err != nil {
    return err.Error();
} else {
    return resp.Status;
}

}

1 个答案:

答案 0 :(得分:0)

import (
"bytes"
"google.golang.org/appengine"
"google.golang.org/appengine/urlfetch"
"net/http"
)

func postSlackBetaSignup(req *http.Request, msg string) string {

ctx := appengine.NewContext(req);
request := urlfetch.Client(ctx);
data := []byte("{'text': '" + msg + "'}");
body := bytes.NewReader(data);
resp, err := request.Post("https://hooks.slack.com/services/<<<YOUR WEBHOOK HERE>>>", "application/json", body);
if err != nil {
    return err.Error();
} else {
    return resp.Status;
}

}