andre machado

Members
  • Content Count

    38
  • Joined

  • Last visited

About andre machado

  • Rank
    Newbie
  • Birthday 05/08/1990

Contact Methods

  • ICQ
    674387415

Profile Information

  • Gender
    Male
  • Location
    Cachoeira do Sul

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Me parece que, usando: $query=iconv('UTF-8', 'ASCII//TRANSLIT', $query); Funcionou, converteu de "Mão" para "Mao", Encontrou no mercado livre tanto Mão, quanto Mao, Mas logo depois de sincronizar eu insiro no banco o que não tem, e, trago o resultado do banco, me parece que, o meu banc ode dados que está retornando com diferença na acentuação, e me trazendo somente "Mao", O que fazer pro banco de dados capturar tanto a como ã, assim por diante ?
  2. Também tentei: $params =urlencode( array( 'access_token' => $_SESSION['access_token'], 'orders' =>'stop_time_desc', 'limit'=>$limit, 'offset'=>$offset, 'query'=>$query_mercadolivre )); O erro é: Warning: urlencode() expects parameter 1 to be string, array given in /.../controller.phpon line Fatal error: Unsupported operand types in /.../controller.phpon line Também tento: $params = array( 'access_token' => $_SESSION['access_token'], 'orders' =>'stop_time_desc', 'limit'=>$limit, 'offset'=>$offset, 'query'=>urlencode($query_mercadolivre )); O erro é: Notice: Undefined property: stdClass::$results in
  3. Bom dia, a questão do espaço eu consegui resolver colocando um underline com replace. Porém, a questão da acentuação não. Eu digito: "Mão", o meu html é UTF-8, e o meu php é UTF-8, quando dou echo no que digito por algum motivo mostra no formato ISO-8859-1, ou seja, "Mão" corretamente. Se eu mando essa query para o mercado livre me retorna erro: Notice: Trying to get property of non-object in /.../controller.phpon line Para tirar a acentuação eu converto pelo php em UTF-8 pelo código: $query=iconv('UTF-8', 'ASCII//TRANSLIT', $query); Então, "Mão" é convertido e ao dar echo aparece como "Mao", logo, é enviado essa string pro mercado livre e faz a busca normalmente, mas pela query "Mao", sem acentuação, e, o mercado livre, não encontra as palavras que estão cadastradas lá com acentuação. Então, não consigo resolver o problema de acentuação. Se eu uso $query = urlencode($query); Ocorre o seguinte erro: Sincronizando "m%C3%A3o" ... Notice: Undefined property: stdClass::$results in
  4. O que eu faço então? No momento to dando insert e update em cada requisição, a diferenca é que, nao deixo o banco repetir, uso um unique_id, e, executo com cron a cada 1 minuto. Mas posteriormente o cron executar vem denovo aquela requisição e um novo update é feito (no mesmo resource) Como reaproveitar essas requisições?
  5. Se é informação repetida, tu dá o unique_id no resource. Não esquece de enviar o ok resposta 200 pro servidor do mercado livre no ato do recebimento, antes de incluir o dado no banco de dados, então, se por algum motivo for dado repetido, o unique id irá reter e não irá usar o banco nele. Quando usar a notificação de fato, pode dar um delete na linha do banco, e quando voce receber ela novamente, então será inclusa ao banco. É assim que eu faço, Eu tenho um cron rodando a cada 1 minuto executa todas notificações salvas no banco. Sendo que cada vez que recebo a notificação eu salvo no banco e dou o ok 200, além de proteger o banco com unique id dentro deste 1 minuto. Fica super rápido Mas a parte do cron a cada 1 minuto você pode eliminar caso necessite de maior exatidão no sistema que está sua api. O meu é provisório pois pretendo futuramente rodar no mesmo momento do recebimento.
  6. Oi, é php sim. Tá, mas eu coloco isso onde. em baixo do codigo que recebo o json numa variavel ? E essa resposta se dará ao recebimento dessa notificação em específica, para cada terá este retorno é isso ? Por que não vi parametros ou onde colocar, eu não faço ideia como se usa a resposta do ok, mas tenho um codigo limpo apenas recebendo o json, e incluindo os dados no meu banco de dados para depois tratar notificação por notificação, acontece que está entrando várias repetidas, no qual quero evitar dando o ok quando recebido. Uma alternativa foi dar um unique id no banco para esse dado, mas, não é o correto.
  7. Erro 403 é sempre relacionado com permissão e nunca um erro de código. Pense nas permissões da API relacionado diretamente ao mercado livre, o que conheço é somente o que está na página do seu mercado livre developers, na configuração da api, tente marcar tudo que está relacionado com a operação lá, pode ser que esteja faltando este item. Posteriormente, deslogue ou kicke a account do seu mercado livre api, e faça login por ela novamente.
  8. Bom dia, eu estou recebendo as notificações e tratando o json normalmente, capturo o dado e levo ao banco de dados, faço o que tem de ser feito, porém, a notificação se repete mesmo após eu capturar o json, Não sei que código deve ser utilizado para enviar o ok status 200 para o mercado livre parar de me notificar sobre aquele item, O que ocorre é que, eu fico repetidamente tratando o mesmo item (dado) Sei que o servidor deve retornar esse status, mas não sei como fazer!
  9. Obrigado! Vou testar mais tarde; Respondendo ao seu tópico: 1 - É necessário passar o Token 2 - Já consegue listar os últimos anuncios pela API ? 3 - Se já consegue listar, para editar basta usar o código de gestão do item, na documentação está em: https://developers.mercadolivre.com.br/pt_br/items-e-buscas Para ver o título você está usando o seguinte código pelo GET: $ curl -X GET https://api.mercadolibre.com/items/MLA608007087?access_token=$ACCESS_TOKEN Lembre desta parte da documentação? /items/{Item_id} Obtém listagem de gestão. Tente agora editar a quantidade pelo exemplo quando tu clica ao lado em PUT: $ "curl -X PUT -H ""Content-Type: application/json"" -H ""Accept: application/json"" -d { ""available_quantity"": 6 } https://api.mercadolibre.com/items/ITEM_ID?access_token=YOUR_ACCESS_TOKEN" Consegue atualizar a quantidade ? O procedimento é igual para o título!
  10. Olá, Quero um auxilio para saber qual procedimento adotar, ou como tratar um valor recebido pelo callback! 1 - Capturei o retorno em uma variavel $retorno 2 - Criei uma tabela no banco com os campos do retorno e inseri lá $retorno = file_get_contents('php://input'); $json = json_decode($retorno); Este código a baixo de exemplo está funcionando! $application_id = $json->application_id; $resource = $json->resource; $user_id = $json->user_id; $topic = $json->topic; $attempts = $json->attempts; $sent = $json->sent; $received = $json->received; Tabela no banco: O que faço com esta informação ? Eu imagino que devo atualizar o item no banco de dados, capturando todos dados dele e dando update, é assim que funciona a operação ? Qual o procedimento voces adotam, para que eu possa me guiar se estou fazendo certto, pois a informação é pouca e não sei exatamente o que foi alterado, se foi preço, etc, eu mesmo devo atualizar tudo ? Variável $retorno dá o resultado: Thank u!
  11. Dá um foreach set estoque = x nos items da variação (:
  12. Olá amigo, procura pelo comando que lista somente o item_id de determinado vendedor. Você vai conseguir atingir um limite de 1000 resultados somente com o item_id Posteriormente, procura fazer algo com essa quantidade, seja buscar os dados idnviduais de cada item e na primeira vez inserir no teu banco de dados com o dado da data de criação e atualização, assim podendo filtar melhor, e fazendo algum tipo de paginação, ou então buscando de categoria por categoria em um while até concluir a inserção no banco, uma coisa é certa, faça algo que mantenha mil resultados, mais que isso, tu procura pelo comando como listar mais de 1000 resultados de anuncios tem um segredo lá
  13. Olá, só consigo fazer funcionar se eu digito uma unica palavra sem acentuação. Quando digito com espaço, exemplo: "fonte notebook", então dá erro: Linha 166: if (count($result['body']->results)>0) { Ele dá erro no resultado, ou seja não funciona, eu sei que o erro é no $params exatamente no $query. Mas não sei arrumar, de jeito nenhum. O Query vem exatamente o que foi digitado, na verdade apenas limpo com um $query = trim($query); Código: