meli
Version:
A Mercado Libre SDK client that supports promises
169 lines (162 loc) • 5.64 kB
Markdown
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]);
```
|Field|Type|Required|Description|
|-----|----|--------|-----------|
|client_id|int|yes|ID provided when creating a MELI APP (link to create app guide)|
|client_secret| string| yes| Hash string key provided when creating a MELI APP (link to create app guide)|
|access_token |string| optional| Used to talk to our API resources that require credentials (eg: POST to /items).|
|refresh_token| string| optional| Hash 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)
```
|Field|Type|Required|Description|
|-----|----|--------|-----------|
redirect_uri|string|yes|Callback 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)
```
|Field|Type|Required|Description|
|-----|----|--------|-----------|
code|string|yes|Code received at redirect_uri when user granted permission to the Meli APP.|
redirect_uri|string|yes|Callback 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,])
```
|Field|Type|Required|Description|
|-----|----|--------|-----------|
path|string|yes|API resource path to which the GET request will be sent to.|
params|object|optional|Additional 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,])
```
|Field|Type|Required|Description|
|-----|----|--------|-----------|
path|string|yes|API resource path to which the POST request will be sent to.|
body|object|yes|Body to be sent when executing the POST request.
params|object|optional|Additional params (if required).|
#### upload (post with multipart)
```
meliObject.upload(path, body, [params,])
```
|Field|Type|Required|Description|
|-----|----|--------|-----------|
path|string|yes|API resource path to which the POST request will be sent to.|
body|object|yes|Body to be sent when executing the POST request.
params|object|optional|Additional params (if required).|
#### put
```
meliObject.put(path, body, [params,])
```
|Field|Type|Required|Description|
|-----|----|--------|-----------|
path|string|yes|API resource path to which the PUT request will be sent to.|
body|object|yes|Body to be sent when executing the PUT request.
params|object|optional|Additional params (if required).|
#### delete
```
meliObject.delete(path, [params,])
```
|Field|Type|Required|Description|
|-----|----|--------|-----------|
path|string|yes|API resource path to which the DELETE request will be sent to.|
params|object|optional|Additional 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
```