Retrieving Discord ID from POST request

Here’s an actual members:pledge:create webhook trigger, of which I can use to at least demonstrate the method used to call the specific value buried within:

{
    "data": {
        "attributes": {
            "campaign_lifetime_support_cents": 0,
            "currently_entitled_amount_cents": 100,
            "email": "[EMAIL ADDRESS]",
            "full_name": "First Last",
            "is_follower": false,
            "last_charge_date": null,
            "last_charge_status": null,
            "lifetime_support_cents": 0,
            "next_charge_date": "2021-04-01T07:00:00.000+00:00",
            "note": "",
            "patron_status": "active_patron",
            "pledge_cadence": 1,
            "pledge_relationship_start": "2021-03-31T17:08:01.311+00:00",
            "will_pay_amount_cents": 100
        },
        "id": "*-*-****-****-************",
        "relationships": {
            "address": {
                "data": null
            },
            "campaign": {
                "data": {
                    "id": "*****",
                    "type": "campaign"
                },
                "links": {
                    "related": "https://www.patreon.com/api/oauth2/v2/campaigns/*****"
                }
            },
            "currently_entitled_tiers": {
                "data": []
            },
            "user": {
                "data": {
                    "id": "*****",
                    "type": "user"
                },
                "links": {
                    "related": "https://www.patreon.com/v2"
                }
            }
        },
        "type": "member"
    },
    "included": [{
        "attributes": {
            "created_at": "2021-01-12T02:01:27.000+00:00",
            "creation_name": "STUFF OFFERED BY PATREON PAGE",
            "discord_server_id": null,
            "google_analytics_id": null,
            "has_rss": false,
            "has_sent_rss_notify": false,
            "image_small_url": "[URL TO IMAGE]",
            "image_url": "[URL TO IMAGE]",
            "is_charged_immediately": false,
            "is_monthly": true,
            "is_nsfw": false,
            "main_video_embed": null,
            "main_video_url": null,
            "one_liner": null,
            "patron_count": 0,
            "pay_per_name": "month",
            "pledge_url": "/join/**************",
            "published_at": "2021-01-12T02:05:13.000+00:00",
            "rss_artwork_url": null,
            "rss_feed_title": null,
            "summary": "Creating stuff",
            "thanks_embed": null,
            "thanks_msg": null,
            "thanks_video_url": null,
            "url": "https://www.patreon.com/**************",
            "vanity": "PATREON PAGE NAME"
        },
        "id": "6026224",
        "type": "campaign"
    }, {
        "attributes": {
            "about": null,
            "created": "2017-12-01T05:39:59.000+00:00",
            "first_name": "FIRST",
            "full_name": "FIRST LAST",
            "hide_pledges": false,
            "image_url": "https://c10.patreonusercontent.com/3/XXXYYYZZZ/patreon-media/p/....jpg",
            "is_creator": false,
            "last_name": "LAST",
            "like_count": 0,
            "social_connections": {
                "deviantart": null,
                "discord": { <<<--------------------------------------- - Discord Info
                    "url": null,
                    "user_id": "*************"
                },
                "facebook": null,
                "google": null,
                "instagram": null,
                "reddit": null,
                "spotify": null,
                "twitch": null,
                "twitter": null,
                "youtube": null
            },
            "thumb_url": "URL_TO_THUMBNAIL",
            "url": "https://www.patreon.com/user?u=*****",
            "vanity": null
        },
        "id": "123456666",
        "type": "user"
    }],
    "links": {
        "self": "https://www.patreon.com/api/oauth2/v2/members/****************"
    }
}

I’ve made it more obvious where the discord data is gathered from. Here’s a more streamlined way of viewing it, thanks to VSCode and some JSON parsing extensions:

Screenshot from 2021-03-31 15-55-36

I am not sure of the exact syntax, but if I recall, javascript let’s you use either dot notation or bracket notation, so you should be able to access it and place it into a variable like this:

let variablename = json.included[1].attributes.social_connections.discord.user_id

Play with this kind of notation. it may take a couple of tries to get it correct.

1 Like