2020/04/08

[golang]mentionの戻りtext

こんな構造体を作った。

01: type MsgEvent struct {
02:     Event struct {
03:         Blocks []struct {
04:             Elements []struct {
05:                 Elements []struct {
06:                     Type string `json:"type"`
07:                     UserId string `json:"user_id"`
08:                     Text string `json:"text"`
09:                 } `json:"elements"`
10:             } `json:"elements"`
11:         } `json:"blocks"`
12:     } `json:"event"`
13: }

 

そして、slack-go/slackのeventサンプルでbodyがあるので、こんな感じでデコードした。

01:             var msgEvent MsgEvent
02:             if err := json.Unmarshal([]byte(body), &msgEvent); err != nil {
03:                 log.Fatalf("json: %v\n", err)
04:             }
05:             for _, item := range msgEvent.Event.Blocks {
06:                 for _, item2 := range item.Elements {
07:                     for _, item3 := range item2.Elements {
08:                         if item3.Type == "text" {
09:                             log.Printf("text=%s\n", item3.Text)
10:                         }
11:                     }
12:                 }
13:             }

 

気力が尽きたので、今日はここまで。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。