Esempio n. 1
0
class Melif23:
    def __init__(self, url):
        self.auth = self.get_auth(url)
        self.meli = Meli(client_id=5747735731654676, client_secret="ITYNDyPRzGGArOuwJk2684LwDiGotzCW",
                         access_token=self.auth['access_token'],
                         refresh_token=self.auth['refresh_token'])

    @classmethod
    def get_auth(self, url):
        return requests.get(url, verify=False).json()

    def get_item(self, item):
        response = self.meli.get("/items/" + item).json()
        categories = self.get_categories(response["category_id"])
        return {"id": response["id"], "title": response["title"], "subtitle": response["subtitle"],
                "price": response["price"], "image": response['pictures'][0]['secure_url'], "categories": categories}

    def get_categories(self, cat):
        response = self.meli.get("/categories/" + cat).json()
        return {"main": response["name"], "root": response["path_from_root"], "childs": response["children_categories"]}

    def get_user(self):
        params = {'access_token': self.meli.access_token}
        response = self.meli.get(path="/users/me", params=params).json()
        return response["id"]
Esempio n. 2
0
    def get_publicaciones(self):
        try:
            meli = Meli(client_id=self.request.session['CLIENT_ID'],
                        client_secret=self.request.session['CLIENT_SECRET'],
                        access_token=self.request.session['ACCESS_TOKEN'],
                        refresh_token=self.request.session['REFRESH_TOKEN'])
            ml_user_id = self.request.session['ML_USER_ID']
        except KeyError:
            return redirect('login')
        publicaciones_activas = list()

        response = meli.get(f'/users/{ml_user_id}/items/search',
                            params={'access_token': meli.access_token})
        json_response = json.loads(response.content)
        publicaciones = json_response.get('results')
        if publicaciones:
            for publicacion in publicaciones:
                resp = meli.get(f'/items/{publicacion}',
                                params={'access_token': meli.access_token})
                json_publicacion = json.loads(resp.content)
                if json_publicacion['status'] == 'active':
                    publicaciones_activas.append({
                        'id':
                        str(publicacion),
                        'permalink':
                        json_publicacion['permalink'],
                        'price':
                        json_publicacion['price'],
                        'title':
                        json_publicacion['title']
                    })
        return publicaciones_activas
Esempio n. 3
0
def importar_anuncios():

    import json

    form = SQLFORM.factory(
        Field('anuncio_id','string',label='Id do Anuncio:'),
        Field('offset','integer',label='Inicio:', default=0),
        Field('limit','integer',label='Quantidade:',default=50),
        table_name='importaranuncio',
        submit_button='Carregar Anuncios',
        )

    xitens = []
    btnAtualizar = ''

    if form.process().accepted:

        anuncio_id = form.vars.anuncio_id
        offset = form.vars.offset
        limit = form.vars.limit 

        # Cunsulta de itens na Api do mercado livre
        from meli import Meli
        meli = Meli(client_id=CLIENT_ID,client_secret=CLIENT_SECRET)

        if anuncio_id:
            argsItem = "items/%s" %(anuncio_id)
            busca = meli.get(argsItem)
            
            if busca.status_code == 200:
                itens = json.loads(busca.content)    
                xitens.append(itens)
        else:
            argsItem = "sites/MLB/search?seller_id=%s&offset=%s&limit=%s" %(USER_ID,offset,limit)
            busca = meli.get(argsItem)
            
            if busca.status_code == 200:
                itens = json.loads(busca.content)    
                xitens = itens['results']
        
        atualizar_anuncios(xitens)
        
        
    elif form.errors:
        response.flash = 'Erro no Formulário'

    return dict(form=form,itens = xitens,btnAtualizar=btnAtualizar)
Esempio n. 4
0
def main():
    meli = Meli(client_id=CLIENT_ID,
                client_secret=CLIENT_SECRET,
                access_token=ACCESS_TOKEN,
                refresh_token=REFRESH_TOKEN)

    response = meli.get("/items/ITEM_ID")
    print response.content
Esempio n. 5
0
def main():
    if not  TOKEN:
        CODE = os.environ.get("CODE")
        if not CODE:
            ml_api = Meli(**auth_params)
            print ml_api.auth_url(redirect_URI=URL)
            print "login and run CODE=foobar main.py"
        else:
            ml_api = Meli(**auth_params)
            ml_api.authorize(CODE,URL)
            print "export set TOKEN='%s'" % ml_api.access_token
        sys.exit(0)

    auth_params.update({'access_token':TOKEN})

    ml_api = Meli(**auth_params)

    resp = ml_api.get("/sites/%s/categories" % SITE )
    cat_list = resp.json()
    data = []
    cat_count = 0
    item_count = 0
    for cat in cat_list:
        cat_id = cat.get("id")
        cat_name = cat.get("name")
        d = {'cat_id':cat_id, 'cat_name':cat_name, 'items':[]}
        cat_count +=1
        print d
        for page in range(0,TIMES):
            url = "/sites/{}/hot_items/search?limit={}&category={}&page={}".format(SITE,LIMIT,cat_id, page)
            resp = ml_api.get(url)
            item_list = resp.json()["results"]
            for item in item_list:
                item_count +=1
                item_name = item.get("title")
                item_id = item.get("id")
                item_price = item.get("price")
                if item_name:
                    d["items"].append({'item_id': item_id,
                        'item_price':item_price, 'item_name': item_name})
                    #print d
        data.append(d)
    print "fetch"
    print "cats: {} items: {}".format(cat_count, item_count)
    return data
Esempio n. 6
0
def buscar_categoria(categoriaId):
    import json
    from meli import Meli
    meli = Meli(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)
    ### Buscar Categoria ###
    args = "categories/%s" % (categoriaId)
    categoria = meli.get(args)
    if categoria.status_code == 200:
        categoria = json.loads(categoria.content)

    ### Concatena Nome da Categoria ###
    nomeCategoria = ''
    for r in categoria['path_from_root']:
        if nomeCategoria:
            nomeCategoria = nomeCategoria + '/' + r['name']
        else:
            nomeCategoria = r['name']

    ### Buscar Dimensoes por Categoria ###
    valorFrete = 0
    argsDimensoes = '%s/shipping' % (args)
    categoriaDimensoes = meli.get(argsDimensoes)
    if categoriaDimensoes.status_code == 200:
        dimensoes = json.loads(categoriaDimensoes.content)

        ### Buscar Valor de Frete pelas Dimensoes da Categoria ###
        argsFrete = '/users/%s/shipping_options/free?dimensions=%sx%sx%s,%s' \
        %(USER_ID,dimensoes['height'],dimensoes['width'],dimensoes['length'],dimensoes['weight'])
        categoriaFrete = categoria = meli.get(argsFrete)

        if categoriaFrete.status_code == 200:
            frete = json.loads(categoriaFrete.content)
            valorFrete = frete['coverage']['all_country']['list_cost']

    return dict(categoria=nomeCategoria,
                categoriaId=categoriaId,
                valorFrete=valorFrete)
Esempio n. 7
0
    def get(self, request, *args, **kwargs):
        try:
            code = request.GET['code']
            meli = Meli(self.request.session['CLIENT_ID'],
                        self.request.session['CLIENT_SECRET'])
        except KeyError:
            return redirect('login')

        meli.authorize(code=code, redirect_URI=settings.CALLBACK_URL)
        response = meli.get('/users/me',
                            params={'access_token': meli.access_token})
        json_response = json.loads(response.content)
        self.request.session['ML_USER_ID'] = json_response['id']

        self.request.session['ACCESS_TOKEN'] = meli.access_token
        self.request.session['REFRESH_TOKEN'] = meli.refresh_token
        return super().get(request, *args, **kwargs)
Esempio n. 8
0
def multiplos():
    # Cunsulta de itens na Api do mercado livre
    import json
    from meli import Meli
    meli = Meli(client_id=CLIENT_ID,client_secret=CLIENT_SECRET)
    xitens = []
    rows = db(Anuncios.forma == 'Multiplos').select()
    for row in rows:
        anuncio_id = row.item_id
        argsItem = "items/%s" %(anuncio_id)
        busca = meli.get(argsItem)
        
        if busca.status_code == 200:
            itens = json.loads(busca.content)    
            xitens.append(itens)
    
    atualizar_anuncios(xitens)
    return
Esempio n. 9
0
def sugerir_categoria():
    if request.vars.categoria == '':
        from meli import Meli

        args = "sites/MLB/category_predictor/predict?title=%s" %(request.vars.titulo)
        meli = Meli(client_id=CLIENT_ID,client_secret=CLIENT_SECRET)
        busca = meli.get(args) 
        import json
        if busca.status_code == 200:
            sugestao = json.loads(busca.content)
            categoria = buscar_categoria(sugestao['id'])

            Categorias.update_or_insert(Categorias.categoria_id==sugestao['id'],
                categoria_id = sugestao['id'],
                categoria = categoria['categoria'],
                frete = categoria['valorFrete'],)
            
            return "jQuery('#anuncios_categoria').append(new Option('%s', '%s')).val('%s');" % (categoria['categoria'],sugestao['id'],sugestao['id'])
Esempio n. 10
0
class MeliTest(unittest.TestCase):

    def setUp(self):
        self.CLIENT_ID = "123"
        self.CLIENT_SECRET = "a secret"
        self.ACCESS_TOKEN = "a access_token"
        self.REFRESH_TOKEN = "a refresh_token"
        self.NEW_ACCESS_TOKEN = "a new access_token"
        self.NEW_REFRESH_TOKEN = "a new refresh_token"
        self.meli =  Meli(client_id=self.CLIENT_ID, client_secret=self.CLIENT_SECRET, access_token=self.ACCESS_TOKEN, refresh_token=self.REFRESH_TOKEN)


    #constructor tests
    def testClientId(self):
        self.assertEqual(self.meli.client_id, self.CLIENT_ID)

    def testClientSecret(self):
        self.assertEqual(self.meli.client_secret, self.CLIENT_SECRET)

    def testAccessToken(self):
        self.assertEqual(self.meli.access_token, self.ACCESS_TOKEN)

    def testRefreshToken(self):
        self.assertEqual(self.meli.refresh_token, self.REFRESH_TOKEN)

    #auth_url tests
    def testAuthUrl(self):
        callback = "http://test.com/callback"
        self.assertTrue(re.search("^http", self.meli.auth_url(redirect_URI=callback)))
        self.assertTrue(re.search("^https\:\/\/auth.mercadolibre.com\/authorization", self.meli.auth_url(redirect_URI=callback)))
        self.assertTrue(re.search("redirect_uri", self.meli.auth_url(redirect_URI=callback)))
        self.assertTrue(re.search(self.CLIENT_ID,self.meli.auth_url(redirect_URI=callback)))
        self.assertTrue(re.search("response_type", self.meli.auth_url(redirect_URI=callback)))

    #Mock requests
    def mockGet(url, path=None, params={},headers={}, data=None, body=None):

        response = requests.Response()

        if re.search("/users/me", url):
            if "access_token" in params:
                response.status_code = 200
            else:
                response.status_code = 403
        elif re.search("/authorization", url):
            response.status_code = 200
        else:
            response.status_code = 200
        return response

    def mockPost(url, path=None, body=None, params={},headers={}, data=None):
        response = requests.Response()

        if re.search("/oauth/token", url):
            if "grant_type" not in params or "client_id" not in params or "client_secret" not in params:
                response.status_code = 403
            else:
                if re.search("grant_type=authorization_code", params):
                    content = {'access_token' : 'a access_token', 'refresh_token' : 'a refresh_token'}
                elif re.search("grant_type=refresh_token", params):
                    content = {'access_token' : 'a new access_token', 'refresh_token' : 'a new refresh_token'}
                response._content = json.dumps(content)
                response.status_code = 200
        else:
            if "access_token" in params:
                response.status_code = 200
            else:
                response.status_code = 403

        return response

    def mockPut(url, path=None, body=None, params={},headers={}, data=None):
        response = requests.Response()
        if "access_token" in params:
            response.status_code = 200
        else:
            response.status_code = 403
        return response

    def mockDelete(url, path=None, params={},headers={}, data=None, body=None):
        response = requests.Response()
        if "access_token" in params:
            response.status_code = 200
        else:
            response.status_code = 403
        return response

    requests.get    = mockGet
    requests.post   = mockPost
    requests.put    = mockPut
    requests.delete = mockDelete

    #requests tests
    def testGet(self):
        response = self.meli.get(path="/items/test1")
        self.assertEqual(response.status_code, requests.codes.ok)

    def testPost(self):
        body = {"condition":"new", "warranty":"60 dias", "currency_id":"BRL", "accepts_mercadopago":True, "description":"Lindo Ray_Ban_Original_Wayfarer", "listing_type_id":"bronze", "title":"oculos Ray Ban Aviador  Que Troca As Lentes  Lancamento!", "available_quantity":64, "price":289, "subtitle":"Acompanha 3 Pares De Lentes!! Compra 100% Segura", "buying_mode":"buy_it_now", "category_id":"MLB5125", "pictures":[{"source":"http://upload.wikimedia.org/wikipedia/commons/f/fd/Ray_Ban_Original_Wayfarer.jpg"}, {"source":"http://en.wikipedia.org/wiki/File:Teashades.gif"}] }
        response = self.meli.post(path="/items",body=body,params={'access_token' : self.meli.access_token})
        self.assertEqual(response.status_code, requests.codes.ok)

    def testPut(self):
        body = {"title":"oculos edicao especial!", "price":1000 }
        response = self.meli.put(path="/items/test1",body=body,params={'access_token' : self.meli.access_token})
        self.assertEqual(response.status_code, requests.codes.ok)

    def testDelete(self):
        response = self.meli.delete(path="/questions/123",params={'access_token' : self.meli.access_token})
        self.assertEqual(response.status_code, requests.codes.ok)

    def testWithoutAccessToken(self):
        response = self.meli.get(path="/users/me")
        self.assertEqual(response.status_code, requests.codes.forbidden)

    def testWithAccessToken(self):
        response = self.meli.get(path="/users/me",params={'access_token' : self.meli.access_token})
        self.assertEqual(response.status_code, requests.codes.ok)

    #auth tests
    def testAuthorize(self):
        self.meli.access_token = None
        self.meli.refresh_token = None
        response = self.meli.authorize(code="a code from get param", redirect_URI="A redirect Uri")
        self.assertEqual(self.meli.access_token, self.ACCESS_TOKEN)
        self.assertEqual(self.meli.refresh_token, self.REFRESH_TOKEN)


    def testDoRefreshToken(self):
        response = self.meli.get_refresh_token()
        self.assertEqual(self.meli.access_token, self.NEW_ACCESS_TOKEN)
        self.assertEqual(self.meli.refresh_token, self.NEW_REFRESH_TOKEN)
Esempio n. 11
0
class MeliTest(unittest.TestCase):

    def setUp(self):
        self.CLIENT_ID = "123"
        self.CLIENT_SECRET = "a secret"
        self.ACCESS_TOKEN = "a access_token"
        self.REFRESH_TOKEN = "a refresh_token"
        self.NEW_ACCESS_TOKEN = "a new access_token"
        self.NEW_REFRESH_TOKEN = "a new refresh_token"
        self.meli =  Meli(client_id=self.CLIENT_ID, client_secret=self.CLIENT_SECRET, access_token=self.ACCESS_TOKEN, refresh_token=self.REFRESH_TOKEN)


    #constructor tests
    def testClientId(self):
        self.assertEqual(self.meli.client_id, self.CLIENT_ID)

    def testClientSecret(self):
        self.assertEqual(self.meli.client_secret, self.CLIENT_SECRET)

    def testAccessToken(self):
        self.assertEqual(self.meli.access_token, self.ACCESS_TOKEN)

    def testRefreshToken(self):
        self.assertEqual(self.meli.refresh_token, self.REFRESH_TOKEN)

    #auth_url tests
    def testAuthUrl(self):
        callback = "http://test.com/callback"
        self.assertTrue(re.search("^http", self.meli.auth_url(redirect_URI=callback)))
        self.assertTrue(re.search("^https\:\/\/auth.mercadolibre.com\/authorization", self.meli.auth_url(redirect_URI=callback)))
        self.assertTrue(re.search("redirect_uri", self.meli.auth_url(redirect_URI=callback)))
        self.assertTrue(re.search(self.CLIENT_ID,self.meli.auth_url(redirect_URI=callback)))
        self.assertTrue(re.search("response_type", self.meli.auth_url(redirect_URI=callback)))

    #Mock requests
    def mockGet(url, path=None, params={},headers={}, data=None, body=None):

        response = requests.Response()

        if re.search("/users/me", url):
            if "access_token" in params:
                response.status_code = 200
            else:
                response.status_code = 403
        elif re.search("/authorization", url):
            response.status_code = 200
        else:
            response.status_code = 200
        return response

    def mockPost(url, path=None, body=None, params={},headers={}, data=None):
        response = requests.Response()

        if re.search("/oauth/token", url):
            if "grant_type" not in params or "client_id" not in params or "client_secret" not in params:
                response.status_code = 403
            else:
                if re.search("grant_type=authorization_code", params):
                    content = {'access_token' : 'a access_token', 'refresh_token' : 'a refresh_token'}
                elif re.search("grant_type=refresh_token", params):
                    content = {'access_token' : 'a new access_token', 'refresh_token' : 'a new refresh_token'}
                response._content = json.dumps(content)
                response.status_code = 200
        else:
            if "access_token" in params:
                response.status_code = 200
            else:
                response.status_code = 403

        return response

    def mockPut(url, path=None, body=None, params={},headers={}, data=None):
        response = requests.Response()
        if "access_token" in params:
            response.status_code = 200
        else:
            response.status_code = 403
        return response

    def mockDelete(url, path=None, params={},headers={}, data=None, body=None):
        response = requests.Response()
        if "access_token" in params:
            response.status_code = 200
        else:
            response.status_code = 403
        return response

    requests.get    = mockGet
    requests.post   = mockPost
    requests.put    = mockPut
    requests.delete = mockDelete

    #requests tests
    def testGet(self):
        response = self.meli.get(path="/items/test1")
        self.assertEqual(response.status_code, requests.codes.ok)

    def testPost(self):
        body = {"condition":"new", "warranty":"60 dias", "currency_id":"BRL", "accepts_mercadopago":True, "description":"Lindo Ray_Ban_Original_Wayfarer", "listing_type_id":"bronze", "title":"oculos Ray Ban Aviador  Que Troca As Lentes  Lancamento!", "available_quantity":64, "price":289, "subtitle":"Acompanha 3 Pares De Lentes!! Compra 100% Segura", "buying_mode":"buy_it_now", "category_id":"MLB5125", "pictures":[{"source":"http://upload.wikimedia.org/wikipedia/commons/f/fd/Ray_Ban_Original_Wayfarer.jpg"}, {"source":"http://en.wikipedia.org/wiki/File:Teashades.gif"}] }
        response = self.meli.post(path="/items",body=body,params={'access_token' : self.meli.access_token})
        self.assertEqual(response.status_code, requests.codes.ok)

    def testPut(self):
        body = {"title":"oculos edicao especial!", "price":1000 }
        response = self.meli.put(path="/items/test1",body=body,params={'access_token' : self.meli.access_token})
        self.assertEqual(response.status_code, requests.codes.ok)

    def testDelete(self):
        response = self.meli.delete(path="/questions/123",params={'access_token' : self.meli.access_token})
        self.assertEqual(response.status_code, requests.codes.ok)

    def testWithoutAccessToken(self):
        response = self.meli.get(path="/users/me")
        self.assertEqual(response.status_code, requests.codes.forbidden)

    def testWithAccessToken(self):
        response = self.meli.get(path="/users/me",params={'access_token' : self.meli.access_token})
        self.assertEqual(response.status_code, requests.codes.ok)

    #auth tests
    def testAuthorize(self):
        self.meli.access_token = None
        self.meli.refresh_token = None
        response = self.meli.authorize(code="a code from get param", redirect_URI="A redirect Uri")
        self.assertEqual(self.meli.access_token, self.ACCESS_TOKEN)
        self.assertEqual(self.meli.refresh_token, self.REFRESH_TOKEN)


    def testDoRefreshToken(self):
        response = self.meli.get_refresh_token()
        self.assertEqual(self.meli.access_token, self.NEW_ACCESS_TOKEN)
        self.assertEqual(self.meli.refresh_token, self.NEW_REFRESH_TOKEN)
Esempio n. 12
0
REDIRECT_URI = '''http://localhost:4567/redirect'''
CLIENT_NAME = 'Stranger'

meli = Meli(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

category_list = ['MLB223835']

for category in category_list:
    paging_limit = 200
    paging_offset = 0
    items_total = 0
    foo = 1
    timestamp = datetime.datetime.now()
    while paging_offset <= items_total:
        response = (meli.get("/sites/MLB/search?category=" + category +
                             "&condition=new&buying_mode=buy_it_now" +
                             "&offset=" + str(paging_offset) + "&limit=" +
                             str(paging_limit) + "&sort=relevance"))
        jresponse = response.json()
        #timestamp = response.headers['date']
        paging_limit = jresponse['paging']['limit']
        items_total = jresponse['paging']['total']
        item_results = jresponse['results']
        for item in item_results:
            category_id = item['category_id']
            item_id = item['id']
            seller = item['seller']['id']
            price = item['price']
            available_quantity = item['available_quantity']
            sold_quantity = item['sold_quantity']
            UF = item['address']['state_id']
            free_shipping = item['shipping']['free_shipping']
Esempio n. 13
0
def importar_vendas():
    import json
    from datetime import datetime

    form = SQLFORM.factory(
        Field('order_id', 'string', label='Id do Pedido:'),
        Field('offset', 'integer', label='Inicio:', default=0),
        Field('limit',
              'integer',
              label='Quantidade:',
              default=50,
              requires=IS_INT_IN_RANGE(1, 51, error_message='Entre 1 e 50 !')),
        table_name='importarvendas',
        submit_button='Importar Pedidos',
    )

    itens = []

    if form.process().accepted:

        order_id = form.vars.order_id
        offset = form.vars.offset
        limit = form.vars.limit

        if session.ACCESS_TOKEN:
            from meli import Meli
            meli = Meli(client_id=CLIENT_ID,
                        client_secret=CLIENT_SECRET,
                        access_token=session.ACCESS_TOKEN,
                        refresh_token=session.REFRESH_TOKEN)

            if order_id:
                args = "orders/%s" % (order_id)
                busca = meli.get(args, {'access_token': session.ACCESS_TOKEN})
                if busca.status_code == 200:
                    xitens = json.loads(busca.content)
                    itens.append(xitens)
            else:
                args = "/orders/search/recent?seller=%s&sort=date_desc&order.status=paid&offset=%s&limit=%s" % (
                    USER_ID, offset, limit)
                busca = meli.get(args, {'access_token': session.ACCESS_TOKEN})
                #busca = meli.get("/orders/search/recent?seller=158428813&sort=date_desc&order.status=paid", {'access_token':session.ACCESS_TOKEN})

                if busca.status_code == 200:
                    itens = json.loads(busca.content)
                    itens = itens['results']

        for item in itens:

            body = "/shipments/%s" % (item['shipping']['id'])
            busca = meli.get(body, {'access_token': session.ACCESS_TOKEN})

            if busca.status_code == 200:
                shipping = json.loads(busca.content)

                Clientes.update_or_insert(
                    Clientes.id == item['buyer']['id'],
                    id=item['buyer']['id'],
                    nome="%s %s" %
                    (item['buyer']['first_name'], item['buyer']['last_name']),
                    cnpj_cpf=item['buyer']['billing_info']['doc_number'],
                    tipo=item['buyer']['billing_info']['doc_type'],
                    endereco=shipping['destination']['shipping_address']
                    ['address_line'],
                    bairro=shipping['destination']['shipping_address']
                    ['neighborhood']['name'],
                    cidade=shipping['destination']['shipping_address']['city']
                    ['name'],
                    estado=shipping['destination']['shipping_address']['state']
                    ['name'],
                    cep=shipping['destination']['shipping_address']
                    ['zip_code'],
                    fone="%s %s" % (item['buyer']['phone']['area_code'] or '',
                                    item['buyer']['phone']['number'] or ''),
                    email=item['buyer']['email'],
                    apelido=item['buyer']['nickname'],
                )

                Pedidos.update_or_insert(Pedidos.id == item['shipping']['id'],
                                         id=item['shipping']['id'],
                                         buyer_id=item['buyer']['id'],
                                         date_created=datetime.strptime(
                                             item['date_created'][:10],
                                             '%Y-%m-%d'),
                                         status=shipping['status'])

                Pedidos_Itens.update_or_insert(
                    Pedidos_Itens.id == item['id'],
                    id=item['id'],
                    shipping_id=item['shipping']['id'],
                    payments_id=item['payments'][0]['id'],
                    item=item['order_items'][0]['item']['title'],
                    item_id=item['order_items'][0]['item']['id'],
                    quantidade=item['order_items'][0]['quantity'],
                    valor=item['order_items'][0]['unit_price'],
                    taxa=0,
                    frete=0,
                )

        else:
            status = 'Antes Faça o Login....'

    elif form.errors:
        response.flash = 'Erro no Formulário'

    return dict(itens=itens, form=form)
Esempio n. 14
0
def main():
    meli = Meli(client_id=CLIENT_ID, client_secret=CLIENT_SECRET, access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN)

    response = meli.get("/items/ITEM_ID")
    print response.content
Esempio n. 15
0
            ]
        }
        return (self.wcapi.post("products", data).json())


full23 = Wooadd("https://full23.com/core/api/index.php/a3wfnrg2x4kr929c")

a = full23.clean_store()

# full23.add_item("MLV466061309")
userid = full23.get_user()
items = []
mel = Meli(client_id=5747735731654676, client_secret="ITYNDyPRzGGArOuwJk2684LwDiGotzCW", access_token=key,
           refresh_token=refresh)
params = {'access_token': key, "limit": 50}
resp = mel.get("/users/" + str(userid) + "/items/search", params=params).json()
for i in resp['results']:
    items.append(i)

times = math.ceil(int(resp['paging']['total']) / 50) + 1
offset = 0

for i in range(0, int(times)):
    params = {'access_token': key, "limit": 50, "offset": offset}
    resp = mel.get("/users/" + str(userid) + "/items/search", params=params).json()
    for i in resp['results']:
        items.append(i)

    offset = offset + 50

for i in items: