gbandoni

Members
  • Content Count

    237
  • Joined

  • Last visited

  • Days Won

    28

Everything posted by gbandoni

  1. Não precisa de usuário logado per se . Lembre-se que o id e o secret vem do app , que está ligado a sua conta No meu servidor que roda minha plataforma eu tenho uma conta de produção e uma de testes e nunca sequer abri o browser nela
  2. Eu te respondi em outro tópico você deve estar recebendo esse erro porque está passando dados de post na url
  3. O seu problema aparentemente é a sua chamada . Você está confundindo get com post Eu estou vendo os parâmetros client_id,client_secret na url , que seriam parâmetros get , eles devem ser parâmetros post , no corpo da requisição. Uma url por razões óbvias não pode ser criptografada então você circularia dados sensíveis de forma aberta por n passos entre você e o servidor. Por isso que os dados são enviados pelo corpo Eu não sei a linguagem que tu tá usando , mas uma procuradinha por post form data in <insira sua linguagem aqui> resolve
  4. A url de redirect que voce informou no seu código é diferente da url que está cadastrada na conta do app , no mercado livre
  5. Como o @mldev mencionou . Se você tem múltiplos usuários você pode habilitar o escopo offline ai você pode seguir o fluxo oauth padrão que não precisa de URL de retorno nesse caso um simples curl curl --request POST \ --url https://api.mercadolibre.com/oauth/token \ --header 'Cache-Control: no-cache' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data 'client_id=XXXX&client_secret=YYYY&grant_type=client_credentials' já retorna o access token
  6. Eu comecei a ver. O numero da reclamação está dentro da tag mediations dentro da order. Se você le a notificação orders_v2 voce recebe uma quando a reclamação é criada
  7. Apaga seu access token isso é um furo de segurança O accesstoken é um parametro get (na url) , não pode colocar junto com os dados de post
  8. A reposta é um json que contem a id da imagem. Você não deve usar a URL e sim o ID gerado para listar em seu produto
  9. A sua abordargem pode ser complicada pois conta que o ML vai estar 100% operacional para obter a categoria (tem mais de 100mil) Como a própria documentação sugere como caminho começar fazendo a predição de categoria (https://api.mercadolibre.com/sites/MLB/category_predictor/predict?title=xxxx) obter a categoria e se ela não for adequada você tenta mudar (ja tive lâmpada que caiu na categoria "casa de veraneio").
  10. Você tem de ler esse aqui https://developers.mercadolibre.com/pt-br/api-docs-pt-br/categorizacao-de-produtos depois ler esse https://developers.mercadolibre.com/pt_br/publicacao-de-produtos Você pode testar usando o postman e se tudo estiver certo é só fazer usando curl . O postman gera o básico para tu entender.
  11. Eu fiz dois testes com isso um eu apaguei a pergunta , alguns segundos depois veio de resposta ???? . Um eu respondi e de bate pronto veio uma mensagem nos avisos que eu deveria preencher os dados faltantes para aumentar as vendas. As duas perguntas vieram de usuários aparentemente reais nivel 3
  12. Bom dia Não sei se vocês perceberam. Eu tenho recebido umas perguntas em nome de terceiros que estão perguntando somente dos atributos em branco em alguns anúncios. Isso é uma super coincidência ou o ML arrumou uma nova maneira de incomodar ?
  13. Eu vejo como problema ai que você está contando com algo que você não tem controle. Na minha operação meu programa baixa a plp, descompacta sem intervenção e salva com o nome de "<id_order>_plp.pdf" e "<id_shipment>.zpl" PDFFilename := GetMLOrderFilename(OrderList[I], '_plp', '.pdf', 'labels\'); if LabelPDF and (not HasFile(PDFFilename)) then begin Addtolog(Jobname, 'Getting pdf label for ' + OrderList[I], {|LOGPARAM|,}true, FullLog); try DownloadFile(Format(DownloadPDFURL, [ShipmentID, GetAccessToken]), PDFFilename); except on E: EIdHTTPProtocolException do begin Addtolog(Jobname, 'Failed to download ' + ExtractFileName(ShipmentFilename), {|LOGPARAM|,}true, true); Addtolog(Jobname, 'Error: ' + E.ErrorMessage, {|LOGPARAM|,}true, true); System.SysUtils.DeleteFile(PDFFilename); end; on E: Exception do begin Addtolog(Jobname, 'Failed to download ' + ExtractFileName(PDFFilename) + ' -> ' + E.Message, {|LOGPARAM|,}true, true); System.SysUtils.DeleteFile(PDFFilename); end; end; end; se o nome é padronizado a ordem de resgate pouco importa
  14. Se o produto tem variação você deve atualizar o preço e o estoque na variação e não na parte principal dele como você está fazendo.
  15. Eu vejo isso acontecer aqui quando removem a variação do produto e não sincronizam antes de mexer de novo . Veja que pessoal mexendo nos atributos pelo frontend pode criar variações
  16. Ok , mas porque você precisa disso ?
  17. Tenha em mente que é um sistema conectado a outro. Não é muito bom assumir que ele sempre funciona e o tempo todo. Você deve ter mais de um jeito de obter a sua informação para garantir que as coisas funcionam como deveriam . Para te dar um exemplo na minha operação eu tenho 4 eventos de leitura de pedido no ML Quando eu recebo uma notificação de "order" Quando eu recebo uma notificação de "shipment" A cada x minutos eu lei os dados de orders/search/recent A cada x horas eu leio todos os objetos e sincronizo Mesmo assim eu tive um pedido que não apareceu por 5 dias nos 3 primeiros
  18. Você processa as notificações de shipment ? Quando um shipment passa para ready_to_print vem uma notificação no shipment . Mas eu tenho um job que consulta os shipments que eu já gerei nota fiscal para caso demore a notificação
  19. Veja só , isso parece legal , mas o conceito esta meio errado . A requisição deveria ser post O código abaixo eu acho que esta certo , mas convém testar direito. Fazem mais de 10 anos que nao programo vba Public sub GetMlToken Dim xmlhttp as object Dim seu_client_id as String Dim seu_secret as String Set xmlhttp = CreateObject("MSXML2.serverXMLHTTP") 'Microsoft XML, v 4.0 (Windows XP). 'Microsoft XML, v 5.0 (Office 2003/2007). 'Microsoft XML, v 6.0 (Office 2010 ... Dim xmlhttp As New MSXML2.XMLHTTP60 for Microsoft XML, v 6.0 xmlhttp.Open Method, URL, async(false) Dim xmlhttp As New MSXML2.XMLHTTP60, myurl As String myurl = "https://api.mercadolibre.com/oauth/token" xmlhttp.Open "POST", myurl, False xmlhttp.setRequestHeader "Content-Type", "text/json" xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" xmlhttp.setRequestHeader "User-Agent", "Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405" xmlhttp.Send "client_id="+seu_client_id+"&client_secret="+seu_secret+"&grant_type=client_credentials" MsgBox(xmlhttp.responseText) End Sub
  20. Amigo , tu colou seu access token no segundo link Mas nesse caso "ajudou" Quanto a sua dúvida eu imagino que voce esta preenchedo seller com o id do app . Seller é o código do usuário mercado livre . O número que está no final do access token depois do traço. (339...)
  21. ["status"]=> "to_be_agreed" Isso é quando o cliente seleciona "combinar com o vendedor" e por razões óbvias não tem shipment Se você planeja oferecer essa opção vai precisar tratar essa situação na sua aplicação
  22. Se tu fizer uma consulta em https://api.mercadolibre.com/sites/MLB/listing_prices?price=100#json tu pode ver os diferentes planos