π Universal Patron API v2 wrapper that simplifies their API usage in JavaScript
This package was previously used on AniTrack.co before switching to the payment gateway
$ npm install @anitrack/patreon-wrapper
import { Patreon } from '@anitrack/patreon-wrapper';
Where do I find Campaign ID? F12 your Patreon page and search for "campaign" then keep looking until you finds URL with campaign params that contains around 7 degits. That should be your Campaign ID
Patreon.Authorization({
AccessToken: 'YOUR_API_V2_ACCESS_TOKEN',
CampaignID: 'YOUR_CAPAIGN_ID',
});
const Patrons = await Patreon.FetchPatrons([
'active_patron',
'declined_patron',
'former_patron',
]);
console.log(Patrons);
console.log(Patrons) from above
[
{
displayId: '12345678',
displayName: 'Username',
emailAddress: 'email@address.com',
isFollower: false,
subscription: {
note: '',
currentEntitled: {
status: 'active_patron',
tier: {
id: '12345678',
title: 'My First Tier'
},
cents: 500,
willPayCents: 500,
lifetimeCents: 1500,
firstCharge: '2022-01-15 15:00:00.000',
nextCharge: '2022-05-15 15:00:00.000',
lastCharge: '2022-05-15 15:00:00.000'
}
},
mediaConnection: {
patreon: {
id: '12345678',
url: 'https://www.patreon.com/api/oauth2/v2/user/12345678'
},
discord: {
id: '12345678',
url: 'https://discordapp.com/users/12345678'
}
}
},
...
]
This is great for development and working with sandbox patrons users. The sandbox patrons object will be exactly the same as real ones!
You can add as much sandbox patrons as you want
import { Sandbox } from '@anitrack/patreon-wrapper';
Sandbox.AddPatron({
displayId: '123', // Patreon ID
displayName: '123', // Patreon Username
emailAddress: 'email@address.com', // Patreon Email
tier: { id: '123', title: 'Tier 1' }, // Current Tier
cents: 500, // Current paying in cent 500 -> $5.00
willPayCents: 500, // Next pay price
lifetimeCents: 1500, // Total lifetime spent
firstCharge: '2022-01-15 15:00:00.000', // ISO 8601 String date format
nextCharge: '2022-05-15 15:00:00.000',
lastCharge: '2022-04-15 15:00:00.000',
patronStatus: 'active_patron',
mediaConnection: {
patreon: {
id: '123',
url: 'https://www.patreon.com/api/oauth2/v2/user/user_id',
},
discord: { id: '123', url: 'https://discord.com/users/user_id' },
},
});
const Patrons = Sandbox.GetPatrons();
console.log(Patrons);
set second boolean argument "showSandboxPatrons" to true
const Patrons = await Patreon.FetchPatrons(
['active_patron', 'declined_patron', 'former_patron'],
true
);
console.log(Patrons);