jkeveren-spotify-api
npm install jkeveren-spotify-api- TypeScript (Still works with regular JS)
- Promise based
- 0 Dependencies
- Automatically refreshes tokens
- Coming soon: Handles rate limit
Usage/Reference
SpotifyClient
Reference
Development
Both unit and integration (requires configuration) tests can be run using
npm test.
$3
Unit tests can be run using
npm run test/unit.
$3
Integration tests communicate with Spotify's API so requires some configuration.
Once configured, integration tests can be run using
npm run test/integration.
#### Configuration
1. Create a Spotify app in the
developer dashboard.
- Add recirect URL
http://localhost: where
is the same as
REDIRECT_SERVER_PORT in the .env file that you will create in the next step.
- Keeping the app in developmnent mode is recommended as it allows any scopes to be requested.
- If your app is in development mode, give your Spotify account access in the "USERS AND ACCESS" section in the app's Spotify dashboard.
1. Create a
.env file inside the
test-integration directory. Copy and modify following variables:
``
Port for the redirect server to listen on
The integration suite starts a temporary server for Spotify to redirect to.
This is the port that it listens on
REDIRECT_SERVER_PORT=8000Base URLs for auth and API.
Documneted in Spotify's API docs:
Auth: https://developer.spotify.com/documentation/general/guides/authorization/
API: https://developer.spotify.com/documentation/web-api/reference/#/
Typical values are as follows:
AUTH_BASE_URL=https://accounts.spotify.com
API_BASE_URL=https://api.spotify.com/v1Client credentials
Copy these from you're spotify app in the Spotify developer dashboard:
https://developer.spotify.com/dashboard
CLIENT_ID=999b871166be415590457fc76f5898b4
CLIENT_SECRET=c2df8bfbbd8044b2b87899fe451615f6
``
TODO
- Make sure names are sensible
- document everything
- document usage
- JSDoc everything else
- test requesting and uploading non-string objects like images
- verify that spotify app needs to be in dev mode and that you need to add your account to the app's "users and access" section of the app's dashboard
- handle rate limits. (per user request queue?)
- add user constructor
- add integration test for state
- add tests for SpotifyRequestError properties
- handle getUser with no scopes
- maker spotify user more constructable