標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

slack へポストするコードを書いた

秘密鍵書けないので、呼び出し元の main 関数は省略するが、下記のようなコードで出来た。

package main

import (
    "bufio"
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

type Message struct {
    Text    string `json:"text"`
    Channel string `json:"channel",omitempty`
}

func (json1 *Message) PostTo(webHookUrl string) error {
    bin, err := json.Marshal(json1)
    if err != nil {
        return err
    }
    fmt.Println(string(bin))

    res, err := http.Post(webHookUrl, "application/json", bytes.NewReader(bin))
    if err != nil {
        return err
    }
    fmt.Println(res.Status)
    sc := bufio.NewScanner(res.Body)
    for sc.Scan() {
        fmt.Println(sc.Text())
    }
    if err := sc.Err(); err != nil {
        fmt.Fprintln(os.Stderr, err)
    }
    defer res.Body.Close()
    return nil
}

今のところ、自分へのダイレクトメッセージしかポストできないんだよなー。たぶん、権限的な問題だろうね