1.0.2 • Published 5 years ago

meli v1.0.2

Weekly downloads
24
License
ISC
Repository
github
Last release
5 years ago

Meli

Mercado Libre SDK for Node.js that supports promises.

Install

npm install meli

Use

require:

var meli = require('meli');

Constructor:

var meliObject = new meli.Meli(client_id, client_secret, [access_token], [refresh_token]);
FieldTypeRequiredDescription
client_idintyesID provided when creating a MELI APP (link to create app guide)
client_secretstringyesHash string key provided when creating a MELI APP (link to create app guide)
access_tokenstringoptionalUsed to talk to our API resources that require credentials (eg: POST to /items).
refresh_tokenstringoptionalHash string provided when a user authorizes an A P. Used to get a new valid access_token (only available when offline_access scope in APP settings is checked).

Authorization methods

getAuthURL

meliObject.getAuthURL(redirect_uri)
FieldTypeRequiredDescription
redirect_uristringyesCallback URL to which the user will be redirected after granting permission to the Meli APP. The code required to obtain the first access_token (required in Authorize method) will be appended to this URL when making this redirect.

returns string

authorize

meliObject.authorize(code, redirect_uri) 
FieldTypeRequiredDescription
codestringyesCode received at redirect_uri when user granted permission to the Meli APP.
redirect_uristringyesCallback URL to which the API will send the access & refresh tokens. Must be the same as the one configured in the Meli APP settings.

refreshAccessToken

meliObject.refreshAccessToken() 

Request methods

get

meliObject.get(path, [params,]) 
FieldTypeRequiredDescription
pathstringyesAPI resource path to which the GET request will be sent to.
paramsobjectoptionalAdditional params (if required).
Examples
//Get categories from mercado libre argentina
meliObject.get('sites/MLA/categories').then(res => {
    /** returns:
		res = [ 
				{ id: 'MLA5725', name: 'Accesorios para Vehículos' },
				{ id: 'MLA1071', name: 'Animales y Mascotas' },
				{ id: 'MLA1367', name: 'Antigüedades' },
				{ id: 'MLA1368', name: 'Arte y Artesanías' },
				{ id: 'MLA1743', name: 'Autos, Motos y Otros' },
				{ id: 'MLA1384', name: 'Bebés' },
				...
			]
	*/
});
//Get users with ids 145925943 and 145925951
meliObject.get('users', {
    ids: [145925943, 145925951]
}).then(res => {
   /** returns:
		res = [ 
				{ 
					id: 145925943,
				    nickname: 'TETE2780570',
				    registration_date: '2013-09-17T14:20:30.000-04:00',
				    country_id: 'AR',
				    address: { state: 'AR-C', city: 'Palermo' },
				    user_type: 'normal',
				    tags: [ 'normal', 'test_user', 'user_info_verified' ],
				    logo: null,
				    points: 100,
				    site_id: 'MLA',
				    permalink: 'http://perfil.mercadolibre.com.ar/TETE2780570',
				    seller_reputation:
				     { level_id: null,
				       power_seller_status: null,
				       transactions: [Object] },
				    buyer_reputation: { tags: [] },
				    status: { site_status: 'deactive' } 
				},
				{
					id: 145925951,
				    nickname: 'TETE1341752',
				    registration_date: '2013-09-17T14:20:43.000-04:00',
				    country_id: 'AR',
				    address: { state: 'AR-C', city: 'Palermo' },
				    user_type: 'normal',
				    tags: [ 'normal', 'test_user', 'user_info_verified' ],
				    logo: null,
				    points: 100,
				    site_id: 'MLA',
				    permalink: 'http://perfil.mercadolibre.com.ar/TETE1341752',
				    seller_reputation:
				     { level_id: null,
				       power_seller_status: null,
				       transactions: [Object] },
				    buyer_reputation: { tags: [] },
				    status: { site_status: 'deactive' } 
				}
			]
	*/
});

post

meliObject.post(path, body, [params,]) 
FieldTypeRequiredDescription
pathstringyesAPI resource path to which the POST request will be sent to.
bodyobjectyesBody to be sent when executing the POST request.
paramsobjectoptionalAdditional params (if required).

upload (post with multipart)

meliObject.upload(path, body, [params,]) 
FieldTypeRequiredDescription
pathstringyesAPI resource path to which the POST request will be sent to.
bodyobjectyesBody to be sent when executing the POST request.
paramsobjectoptionalAdditional params (if required).

put

meliObject.put(path, body, [params,]) 
FieldTypeRequiredDescription
pathstringyesAPI resource path to which the PUT request will be sent to.
bodyobjectyesBody to be sent when executing the PUT request.
paramsobjectoptionalAdditional params (if required).

delete

meliObject.delete(path, [params,]) 
FieldTypeRequiredDescription
pathstringyesAPI resource path to which the DELETE request will be sent to.
paramsobjectoptionalAdditional params (if required).

Details necessary

In all cases the response is a Promise.

The object passed in the params parameter in functions get, post, put and delete. Is automatically converted to a query string

Example:

meliObject.get('/users/', {ids: [77169310, 1231233]})
.then(body => console.log(body))
.catch(error => console.error(error));

The request is get ​​to the following address:

https://api.mercadolibre.com/users/?ids=77169310,1231233