【发布时间】:2019-09-03 22:41:11
【问题描述】:
与其说是一个问题,不如说是对遇到此问题的其他人的帮助。花了相当多的时间把我的头撞到墙上才能完成这项工作。 (尽管我很喜欢 golang,但你的想法确实有点不同) - 这也可以作为一种通用方式在 AppEngine 中向外部源发布任何类型的帖子。
这是我用来通过 webhook 将简单消息发布到松弛通道的函数。 (假设您知道如何在 slack 中设置 webhook - 很容易做到 - https://get.slack.help/hc/en-us/articles/115005265063-Incoming-WebHooks-for-Slack ) - 注意:虽然您可以在 json 消息中传递相当多的附加参数(参见上面的链接),但简单的事情,如电子邮件如果传入 'text' 参数,地址和图片 url/网址将由 slack 自动解析。
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;
}
}
【问题讨论】:
标签: google-app-engine go post slack