```plantuml actor "user" as us participant "F E" as fe participant "everpro-\nfb-ads" as ap participant "facebook" as fb participant "redis" as redis database " database" as db us -> ap: request connect/reconnect\nour app to access ther fb ap->redis: generate state data (id, token type and user id) ap -> ap: generate link url\nto invoke user dialog fe <- ap: return url link us <- fe: open dialog url us <- fb: \nrequest user approval (pop up) us -> fb: approved ap <- fb: send callback,\nreturn user token and state ap -> fb: return ok ap -> redis: get state by id redis --> ap: state data alt state data found ap -> db: save token ap->fe: redirect to success page else ap->fe: redirect to error page end