Skip to content

Latest commit

 

History

History
157 lines (119 loc) · 3.45 KB

README.md

File metadata and controls

157 lines (119 loc) · 3.45 KB

🍊 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@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'
        }
      }
    },
    ...
]

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@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);

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);

License

MIT