thingiverse-js v1.0.1
Use
This library is a wrapper over the excellent got HTTP request library. We've added some Thingiverse-specific conveniences, but all features of got will work here. Please review their documentation.
npm install thingiverse-jsconst thingiverse = require('thingiverse-js');
const token = 'abcdefgh12345';
thingiverse('users/me', { token }).then(res => {
console.log('My location is "%s" on Thingiverse', res.body.location);
return thingiverse.patch(`users/${res.body.name}`, {
token,
body: { location: 'New Caprica' }
});
}).then(res => {
console.log('Now my location is "%s" on Thingiverse', res.body.location);
}).catch(err => {
console.log(err);
console.log(thingiverse.getError(err.response));
});API
In addition to the standard got methods, we've added some conveniences.
thingiverse(path, opts)
Returns a Promise for the API request. This Promise is the return value from a got request.
path
Should be a string containing the endpoint you're calling (/users/me for example). The leading slash is optional.
opts
Should be an object containing, at least, the OAuth access token set to the property token. Other got options may be added.
thingiverse.getAuthorizeUrl(opts)
Returns a string containing the URL that will allow your users to authorize your application.
opts
Type: object, string
As an object, this parameter must contain your client_id in the form { query: { client_id: 'abcdef123' } }. Other got options may be added.
As a string, simply pass your client_id.
thingiverse.getError(response)
Returns a string containing the error that occurred in your API request, or null if none is found.
response
Type: object
Should be the response object returned from an API request (usually, err.response).
thingiverse.getAccessToken(opts)
Builds a request for exchanging an OAuth authorization code for an access token. Returns a Promise.
opts
Type: object
At a minimum, this object must contain your client_id, client_secret, and the code
returned after a user authorizes your application. Use the form:
{
body: {
client_id: 'abcdef123',
client_secret: 'tuvwxzy789',
code: 'mnopqrs456'
}
}