slack-go/slack

Get Block data from webhook payload

Nilura opened this issue · 0 comments

here is the paylaod that I used to invoke Webhook

{
"text": "ERROR",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "> Danny Torrence left the following review for your property:"
}
}
]
}

Is there any way to get that all info and post to a different channel
currently only can get text

func handleInteractiveCallback(interactiveCallback slackevents.EventsAPIEvent, client *slack.Client, errorChannelID string) error {

switch interactiveCallback.Type {
// First we check if this is an CallbackEvent
case slackevents.CallbackEvent:

	innerEvent := interactiveCallback.InnerEvent

	switch ev := innerEvent.Data.(type) {
	case *slackevents.MessageEvent:
		err := handleMessageEvent(ev, client, errorChannelID)
		if err != nil {
			return err
		}
	}

default:
	return errors.New("unsupported event type")
}
return nil

}

func handleMessageEvent(event *slackevents.MessageEvent, client *slack.Client, errorChannelID string) error {
botInfo, err := client.AuthTest()
if err != nil {
return fmt.Errorf("failed to get bot info: %w", err)
}

if event.User == botInfo.UserID {
	log.Printf("Ignoring own bot message: %s", event.Text)
	return nil
}
text := strings.ToLower(event.Text)

if strings.Contains(text, "error") {

	_, _, _ = client.PostMessage(errorChannelID, slack.MsgOptionText(event.Text, false))

	return nil
}

return nil

}