┌─┐ ┌─┐ ,.-^^-._ ║"│ ║"│ |-.____.-| └┬┘ └┬┘ | | ┌┼┐ ┌┼┐ | | │ │ ┌───────┐ ┌────┐ ┌──────────┐ ┌────┐ ┌────┐ ┌───┐ | | ┌────────────┐ ┌┴┐ ┌┴┐ │Website│ │push│ │updateFeed│ │feed│ │subs│ │FCM│ '-.____.-' │PubSubHubbub│ User Admin └───┬───┘ └────┘ └──────────┘ └────┘ └────┘ └─┬─┘ feed └──────┬─────┘ │ 𝟏 Push notification request │ │ │ │ │ │ │ │ │───────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 𝟐 Send token ┌┴┐ │ │ │ │ │ │ │ │ │──────────────> │ │ │ │ │ │ │ │ │ │ │ └┬┘ │ │ │ │ │ │ │ │ │ │ │ 𝟑 Subscribe feed topic │ │ │ │ │ │ │ │─────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ . . . . . 𝟏 Subscribe feed . . . . . .────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────>. . . . . . . . . . . . . . . . . ┌┴┐ 𝟐 GET subscriber . . │ │ │ │ │ │ │ │ <───────────────────────────────────────────────────────────────────│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─ ─ ┐ │ │ │ │ │ │ │ │ │ │ │ | 𝟑 Check verify_token │ │ │ │ │ │ │ │ │ │ │ < ─ ┘ │ │ │ │ │ │ │ │ │ └┬┘ │ │ │ │ │ │ │ │ │ │ 𝟒 Response challenge │ │ │ │ │ │ │ │ │─────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ . .𝟏 Publish contents . . . . . . . . . .──────────────────>. . . . . . . . . . . . . . . . . . . . . . . 𝟐 Add feed . . . . │ │ │───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴┐ │ 𝟑 (Trigger update) │ │ │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ │ └┬┘ │ │ │ │ │ │ │ │ │ │ │ │ 𝟒 Publish request │ │ │ │ │ │ │ │──────────────────────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴┐ │ 𝟓 Get feed.xml │ │ │ │ │ │ │ │ │ <────────────────────────────────────────────────────────────────────────────────────│ │ │ │ │ │ └┬┘ │ │ │ │ │ │ │ │ │ │ │ 𝟔 Response feed.xml │ │ │ │ │ │ │ │──────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴┐ 𝟕 Post feed │ │ │ │ │ │ │ │ │ │ <───────────────────────────────────────────────────────────────────│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─ ─ ┐ │ │ │ │ │ │ │ │ │ │ │ | 𝟖 Check HMAC secret │ │ │ │ │ │ │ │ │ │ │ < ─ ┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 𝟗 (Get latest Feed) │ │ │ │ │ │ │ │ │ │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─>│ │ │ │ │ │ │ │ └┬┘ │ │ │ │ │ │ │ │ │ │ 𝟏𝟎 Send to topic │ │ │ │ │ │ │ │ │ │────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 𝟏𝟏 Send push notification │ │ │ │ │ │<────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │