google-app-engine - 从 Golang AppEngine 快速轻松地发布到 Slack Webhook

标签 google-app-engine go post slack

与其说是一个问题,不如说是对其他有这个问题的人的帮助。为了完成这项工作,我花了相当多的时间将我的头撞在墙上。 (尽管我非常喜欢 golang,但您的想法确实有所不同)- 这也可以作为一种通用方式,在 AppEngine 中向外部源发送任何类型的帖子。

这是我用来通过 webhook 将简单消息发布到松弛 channel 的函数。 (假设你知道如何在 slack 中设置一个 webhook - 很容易做到 - https://get.slack.help/hc/en-us/articles/115005265063-Incoming-WebHooks-for-Slack ) - 注意:虽然有相当多的额外参数你可以传入 json 消息(见上面的链接)简单的东西,比如电子邮件如果在 'text' 参数中传递,地址和图像 url/web 地址将由 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;
}

最佳答案

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 - 从 Golang AppEngine 快速轻松地发布到 Slack Webhook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55663934/

相关文章:

python - 如何在 google appengine、python 中调用请求处理程序

sql - 有没有非常轻量级的数据库java库?

golang 惯用的方法来检测没有这样的主机错误

go - 自 golang 纳秒时间戳以来的时间

Golang : Use one value in conditional from function returning multiple arguments

php - 取消链接不适用于变量,但适用于精确路径

java - 谷歌应用引擎: How to send a Form POST?

google-app-engine - 云存储 API 的错误导入 "syscall"

python - Beautifulsoup - 提交表单数据

java - Google Translate Api 错误 414(请求 URI 太大)java