@anitrack/patreon-wrapper
v1.5.3
Published
Universal Patron API v2 wrapper that simplifies their API usage in JavaScript
Downloads
355
Readme
🍊 Patreon Wrapper
💎 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
Table of Contents
Install the package
$ npm install @anitrack/patreon-wrapper
Getting Started
import { Patreon } from '@anitrack/patreon-wrapper';
API Authorization
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',
});
Package Usage
Fetching every Patrons from the Campaign
const Patrons = await Patreon.FetchPatrons([
'active_patron',
'declined_patron',
'former_patron',
]);
console.log(Patrons);
Patron object example
console.log(Patrons) from above
[
{
displayId: '12345678',
displayName: 'Username',
emailAddress: '[email protected]',
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'
}
}
},
...
]
Patreon Sandbox
This is great for development and working with sandbox patrons users. The sandbox patrons object will be exactly the same as real ones!
Adding Custom Patrons to the Sandbox
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 protected]', // 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);
Get both Sandbox Patrons and Real Patrons
set second boolean argument "showSandboxPatrons" to true
const Patrons = await Patreon.FetchPatrons(
['active_patron', 'declined_patron', 'former_patron'],
true
);
console.log(Patrons);