Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

redstyle

[Resolvido] Receber JSON de uma api de notificação

Recommended Posts

Olá, estou usando uma API que me envia informações toda vez que um status é alterado. A API é a nova do mercado livre e ela me envia um POST toda vez que tem um novo item. No entanto eles enviam um POST mas as informações vão em JSON.

 

Lá eu tenho que configurar uma url de callback. Normalmente a gente faz uma requisição em uma determinada URL e recebe um json em modo texto e trabalha em cima dele. Mas e quando a aplicação te envia um json via post?

 

Na API do mercado livre eu também tenho que enviar minhas requisições via post mandand um objeto json via headers. Aqui tem um exemplo de como eu trabalho enviando json para eles http://developers.mercadolibre.com/ask-a-question/

 

Mas agora, como recuperar essa informação em JSON que eles me enviam?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oras, se eles enviam via POST é o mesmo procedimento se um usuário estivesse submetendo um formulário.

 

Resgate com $_POST e, se precisar, aplique json_decode().

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oras, se eles enviam via POST é o mesmo procedimento se um usuário estivesse submetendo um formulário.

 

Resgate com $_POST e, se precisar, aplique json_decode().

 

Não é isso não. Eu acabei resolvendo com file_get_contents('php://input');

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria minha segunda observação, que envolve RAW POST DATA.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é isso não. Eu acabei resolvendo com file_get_contents('php://input');

 

[]'s

 

 

Ola amigo, estou tendo a mesma dificuldade em receber o JSON de notificacao da API do mercadolivre.

Na documentacao do Mercado livre nao tem muita informacao ou exemplo de como fazer, eu estou a dias com este problema.

Voce conseguiu receber os dados da notificacao ? Esta notificacao vem em formato de um post normal ? sefor um post de um form normal eu ja estou tentando fazer em ASP percorrendo a matriz do form enviado por um post mas mas vem em branco.

Tem como dar uma ajudinha para mim ?

Obrigado Jaques

Compartilhar este post


Link para o post
Compartilhar em outros sites

A notificação que eles o Mercado Livre envia é para informar se tem um novo pedido, pergunta ou item ou se eles tiveram alguma modificação. Ai o O Mercado Livre envia um callback para uma URL que você configurou na hora que você criou o APP lá. No link que você configurou deve ter um script para capturar as informações.

 

Essas informações vem informando somente o recurso que é novo ou foi alterado. Por exemplo um json que enviam é este:

 

{
"user_id":"8113XXX",
"resource":"/orders/73423XXX",
"topic":"orders",
"received":"2012-10-25T13:26:42.313Z",
"application_id":1XX340,
"sent":"2012-10-25T13:26:42.990Z",
"attempts":0
}

 

em php eu fiz um script que simplesmente tem isso:

$retorno = file_get_contents('php://input');

 

no caso a variavel $retorno tem o json em modo texto, ai no caso é só usar o json_decode().

 

Como você está usando ASP, teria que ver o equivalente do PHP:

- file_get_contents() http://php.net/file_get_contents

- json_decode() http://php.net/json_decode

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo, obrigado por responder.

Eu nao manjo muito de PHP, mas como nao achei nada que pudesse resolver em asp, e ja estou a dias parado por causa disso, pesquisei e vi que a minha hospedagem windows da locaweb tambem roda PHP, entao resolvi tentar em PHP, voce pode ver se o codigo abaixo em PHP esta correto ?

 

$retorno = file_get_contents("php://input");

print $retorno;

$data = json_decode($retorno);

$teste = sendMail("to email","teste php",$retorno,"from email","nome");

 

a intencao eh mandar no emi email o retorno que esta vindo da api, para ver se esta vindo certo...

 

Att Jaques

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segundo a documentação do php, use a função mail para o envio de email.

Ela é bem simples de implementar a principio, veja a documentação dela aqui

 

Algumas hospedagens pode exigir alguma autenticação ou algo do tipo, e normalmente possuem em seu blog/faq algum exemplo sobre isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, somente uma coisa que precisa mudar é a função de envio do e-mail. No php a função que faz isso é a mail().

A documentação dessa função você encontra aqui: http://www.php.net/manual/pt_BR/function.mail.php

 

Somente uma observação é que a Locaweb tem algumas particularidades para envio de e-mail com a função mail() do php. Alguns exemplos e documentação da Locaweb você encontra aqui http://wiki.locaweb.com.br/pt-br/Como_enviar_e-mails_com_a_fun%C3%A7%C3%A3o_mail%28%29_do_PHP

 

Qual ASP você está usando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, somente uma coisa que precisa mudar é a função de envio do e-mail. No php a função que faz isso é a mail().

A documentação dessa função você encontra aqui: http://www.php.net/manual/pt_BR/function.mail.php

 

Somente uma observação é que a Locaweb tem algumas particularidades para envio de e-mail com a função mail() do php. Alguns exemplos e documentação da Locaweb você encontra aqui http://wiki.locaweb.com.br/pt-br/Como_enviar_e-mails_com_a_fun%C3%A7%C3%A3o_mail%28%29_do_PHP

 

Qual ASP você está usando?

 

Ola amigo.

Consegui fazer um script em php, funcionou eu consegui ler os dados do retorno da notificação. e em php mesmo eu consegui fazer um post para a página em asp, ja que tenho mais habilidade com o asp fica mais facil e mais rapido do que eu ficar me batendo no php.

Ja que a hospedagem que tenho na locaweb em asp roda o php tambem nao tive maiores dificuldades.

*Nota: a funcao sendMail() que fiz deu certo manda email direto sem precisar autenticação na locaweb, achei isso estranho pois sei que quanto a politica de email da locaweb é meio chata para evitar envio de span, que nao ;e o caso, mas consegui mandar email para eu comprovar que estava lendo a resposta da nitificação.

 

Obrigado pela ajuda e respostas me ajudou muito.

Att Jaques

Compartilhar este post


Link para o post
Compartilhar em outros sites

A notificação que eles o Mercado Livre envia é para informar se tem um novo pedido, pergunta ou item ou se eles tiveram alguma modificação. Ai o O Mercado Livre envia um callback para uma URL que você configurou na hora que você criou o APP lá. No link que você configurou deve ter um script para capturar as informações.

 

Essas informações vem informando somente o recurso que é novo ou foi alterado. Por exemplo um json que enviam é este:

 

{
 "user_id":"8113XXX",
 "resource":"/orders/73423XXX",
 "topic":"orders",
 "received":"2012-10-25T13:26:42.313Z",
 "application_id":1XX340,
 "sent":"2012-10-25T13:26:42.990Z",
 "attempts":0
}
em php eu fiz um script que simplesmente tem isso:

$retorno = file_get_contents('php://input');
no caso a variavel $retorno tem o json em modo texto, ai no caso é só usar o json_decode().

 

Como você está usando ASP, teria que ver o equivalente do PHP:

- file_get_contents() http://php.net/file_get_contents

- json_decode() http://php.net/json_decode

 

 

Olá amigo teria como você me dar uma ajuda... Estou criando um aplicação em php para gerenciar as vendas no MercadoLivre já consegui ler e editar via API sem problemas mas não consigo ver as notificações de jeito nenhum.

 

Não sei o que pode ser, tentei no localhost, tentei na minha hospedagem do uolhost, no teste notification url só aparece o código 404 not found e se tentar no localhost 405 not allowed.

 

Já fiz umas 3 vezes passo a passo como na documentação do ML mas nada, veja se tem como me dar uma luz no que posso estar errando...

 

Att,

Gustavo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.