package Ġexamples . docs Ċ Ċ // Ġstatic Ġimports Ċ import Ġcom . slack . api . bolt . App Ċ import Ġcom . slack . api . bolt . AppConfig Ċ import Ġcom . slack . api . model . block . Blocks .* Ċ import Ġcom . slack . api . model . block . composition . Block Composition s .* Ċ import Ġcom . slack . api . model . view . Views .* Ċ Ċ import Ġcom . slack . api . model . event . App Home Opened Event Ċ import Ġjava . time . Z onedDateTime Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġapp Ġ= ĠApp ( AppConfig . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. signing Secret (" foo ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. single Team Bot Token (" x ox b - xxx ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĊĠĠĠ Ġ// Ġhttps :// api . slack . com / events / app _ home _ opened ĊĠĠĠ Ġapp . event ( App Home Opened Event :: class . java ) Ġ{ Ġevent , Ġctx Ġ-> ĊĠĠĠĠĠĠĠ Ġ// ĠBuild Ġa ĠHome Ġtab Ġview ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠZ onedDateTime . now () ĊĠĠĠĠĠĠĠ Ġval Ġapp Home View Ġ= Ġview Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type (" home ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. blocks ( as Blocks ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection Ġ{ Ġsection Ġ-> Ġsection . text ( markdown Text Ġ{ Ġmt Ġ-> Ġmt . text (": wave : ĠHello , ĠApp ĠHome ! Ġ( Last Ġupdated : Ġ${ now }) ") Ġ}) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Ġ{ Ġimg Ġ-> Ġimg . imageUrl (" https :// www . example . com / foo . png ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġthe ĠApp ĠHome Ġfor Ġthe Ġgiven Ġuser ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġctx . client (). views Publish Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . userId ( event . event . user ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. hash ( event . event . view ?. hash ) Ġ// ĠTo Ġprotect Ġagainst Ġpossible Ġrace Ġconditions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. view ( app Home View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġctx . ack () ĊĠĠĠ Ġ} Ċ }