Home Reference Source

fablabs.js

An ES6 Fablabs.io API client

Installation

yarn add fablabsjs

Usage Examples

Using a personal token

If you want to write a personal app, or just want avoid using the OAuth flow for testing, you need to get a personal token from the Fablabs.io Developer console, along with application id and secret.

WARNING: Please make sure you understand that the token must be kept safe since all operations are done with your account and other users can impersonate you if it leaks.

See docs.fablabs.io for further information

import  FablabsAPI from 'fablabsjs'

const config = {

    client_id: '<your application id>',
    client_secret: '<your secret>',
    personal_token: '<your personal token from the dashboard>'  // only for thev
}


let fablabs = new FablabsAPI(config)


// get the oauth redirect url

const redirect_url = fablabs.authorization_url()


// process the authorization code and turn it into a token

const token = await fablabs.handle_token(code)


// call any of the api methods

const userProfile = await fablabs.api().getUser()

Using the oAuth flow

The library helps you in implementing the OAuth flow easily into your application. This is the preferred way to authenticate your app, allowing each user to login on fablabs.io and authorize your app.

import  FablabsAPI from 'fablabsjs'

const config = {

    client_id: '<your application id>',
    client_secret: '<your secret>',
    redirect_url:'http://localhost:3001/auth/callback'
}

let fablabs = new FablabsAPI(config)

// get the oauth redirect url

const redirect_url = fablabs.authorization_url()

// send the user to this url, and wait for the code to be sent to redirect_url

// there, process the authorization code and turn it into a token

const token = await fablabs.handle_token(code)

// call any of the api methods on behalf of the user

const userProfile = await fablabs.api().getUser()

See the API reference for available functions.

Configuration variables

The following are all the variables you can set in the fablabsjs config:

const _default_config = {
    client_id: 'c7b63f68b0ec92dfc700061c373fcae80c9255e52fa30371ce224b79d7045546' || process.env['FABLABS_IO_API_KEY'],
    client_secret: 'b29b0eaa742bed6e19fca87807af40bfbbd24cb15e9fdc3d6c1b7b558574850d'|| process.env['FABLABS_IO_API_SECRET'],
    redirect_url:'http://localhost:3001/auth/callback' || process.env['FABLABS_IO_REDIRECT_URL']
    base_url:'http://api.fablabs.local:3000' || process.env['FABLABS_IO_API_HOST'],
    authorize_url:'/oauth/authorize',
    token_url:'/oauth/token',
    personal_token: 'a9eb5aa7a6f526a79feb3aa840aa7057d27112edb4570f1bf795c588ad89bcac' || process.env['FABLABS_IO_PERSONAL_TOKEN']
}

Please note that you can avoid to specify any config and just set environment variables instead.

FABLABS_IO_API_KEY = 'your client id'
FABLABS_IO_API_SECRET = 'your secret'
FABLABS_IO_REDIRECT_URL = 'http://localhost:3001/auth/callback'
FABLABS_IO_API_HOST = 'http://api.fablabs.io'
FABLABS_IO_PERSONAL_TOKEN = 'your personal token'

Run tests

You can test the API and your config using the following command

yarn test