【问题标题】:Quick and Easy Post to Slack Webhook from Golang AppEngine从 Golang AppEngine 快速轻松地发布到 Slack Webhook
【发布时间】: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


    【解决方案1】:
    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;
    }
    

    }

    【讨论】:

    • 您好,感谢您发布您的解决方案。欢迎自我回答,但如果您可以在答案中添加一些解决方案的解释或摘要,而不仅仅是一堆代码,那就太好了。此外,问题框仍应包含一个真实而具体的问题。谢谢!
    猜你喜欢
    • 2013-08-20
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多