• 0
Sign in to follow this  
e2comm

Não consigo pegar o retorno com o Token

Question

Olá Pessoal,

 

Baixei os arquivos da SDK em php e fiz as configurações conforme informado na documentação, registrei minha aplicação para conseguir o App ID  e o Secret Key. Até o momento segui os seguintes passos.

 

1 - Baixei o SDK e configurei o arquivo Meli.php na minha aplicação;

2 - Coloquei meu App ID e Secret Key no código abaixo;

3 - Inclui o CURLOPT_SSLVERSION => 2 no arquivo Meli.php;

 

Quando executo minha aplicação e clico no link para logar no Mercado Livre, é feito o processo de login na página do ML, o sistema redireciona para minha aplicação com o "Code" na URL, eu resgato o "Code" e envio para o método "authorize" ($user = $meli->authorize($_GET['code'], 'https://localhost/v8/app/padrao/ml_login/ml_login.php'Meli::$AUTH_URL['MLB']) . '">Login using MercadoLibre oAuth 2.0</a>';

}
 

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Olá Pessoal,

 

 

Como o Gdon disse acima realmente funciona com Localhost, tem muito gente falando aqui que o problema é porque o pessoal está usando Localhost e isso não procede, utilizem sem o https que vai funcionar.

 

Mas enfim, outro detalhe que tive que alterar foi o seguinte,

 

No arquivo Meli.php esta assim "CURLOPT_SSL_VERIFYPEER => true" coloquei para "False".

 

Abraço.

Share this post


Link to post
Share on other sites
  • 0

MLdev,

 

Eu encontrei diversos tópicos no Forum sobre problemas em conseguir o Token inclusive alguns dizendo que funciona normalmente com localhost sendo que o teste está sendo feito no ambiente de desenvolvimento.

 

Também testei publicando em meu servidor utilizando a URL de produção e acontece o mesmo problema.

 

Se você diz que não funciona com o localhost pode me explicar como temos que desenvolver a integração com a API do ML ? 

 

Preciso de um servidor web com uma URL www.minhaaplicacao.com.br ?

 

Desculpe minha insistência mas não consigo compreender como fazer para testar ou debugar sem ser em localhost.

 

Grato

Share this post


Link to post
Share on other sites
  • 0

O sistema de autenticação OAuth2.0 (que é utilizado pelo ML, Google, Facebook, Tweeter, etc...) necessita de um endereço de callback público para autenticar, releia a documentação. Você poderá encontrar também muito material sobre autenticação OAuth pesquisando no Google

Share this post


Link to post
Share on other sites
  • 0

Mldev,

 

Agradeço sua tentaiva de me ajudar mas o que você me falou não resolve meu problema, como tinha dito fiz o teste também utilizando o

endereço https://www.meusite.com.br/e2sysadmin/ml_login/ml_login.phpe acontece o mesmo problema, então creio que este erro não é por causa da URL que é local ou pública.

 

Sou novato no forum e li vários posts antes de colocar aqui minha dúvida e dificuldade, pelo que olhei nos outros posts o pessoal não apresenta a solução para os problemas é sempre assim, releia a documentação, creio que quem posta uma dúvida no Forúm já deve ter lido a documentação e tentado outras alternativas, como no meu caso.

 

Espero que o Administrador possa me ajudar, segui os passos da documentação e estou utilizando o SDK mas não funciona. Aparentemente é um processo simples e deveria estar funcionando ainda mais porque estou utilizando exatamento o código do SDK.

 

Se alguém puder me ajudar agradeço.

Share this post


Link to post
Share on other sites
  • 0

este domínio não tem https:

https://www.meusite.com.br/e2sysadmin/ml_login/ml_login.php
(se quis proteger o domínio poderia ter usado um termo mnemônico mais abstrato, por exemplo: xxxxxxxxxxxxxxx)

 

básico:

(1) a URL de retorno tem que ser visível na internet;

(2) tem que ter https;

(3) o site deve ser visto como confiável (certificado deve ser válido)

 

esse tipo de tópico já foi criado diversas vezes aqui no forum... é simples: como você espera que o servidor do Mercado Livre redirecione para um "localhost" ???

ele redireciona!

O ML o faz para ele mesmo!!

 

Onde é localhost para a minha máquina?
e para a sua?

e para o MercadoLivre?

 

Quantos localhosts existem?

Eles são "enxergados" na internet?
Eles estão registrados como domínio?

 

É o mal de aula mal assistida... ou falta de conhecimento básico!

Tem que saber como funciona o sistema de DNS para entender o que significa localhost?

Share this post


Link to post
Share on other sites
  • 0

 

Olá Pessoal,

 

Baixei os arquivos da SDK em php e fiz as configurações conforme informado na documentação, registrei minha aplicação para conseguir o App ID  e o Secret Key. Até o momento segui os seguintes passos.

 

1 - Baixei o SDK e configurei o arquivo Meli.php na minha aplicação;

2 - Coloquei meu App ID e Secret Key no código abaixo;

3 - Inclui o CURLOPT_SSLVERSION => 2 no arquivo Meli.php;

 

Quando executo minha aplicação e clico no link para logar no Mercado Livre, é feito o processo de login na página do ML, o sistema redireciona para minha aplicação com o "Code" na URL, eu resgato o "Code" e envio para o método "authorize" ($user = $meli->authorize($_GET['code'], 'https://localhost/v8/app/padrao/ml_login/ml_login.php'Meli::$AUTH_URL['MLB']) . '">Login using MercadoLibre oAuth 2.0</a>';

}

 

 

 

Boa noite.

Sempre vejo as pessoas respondendo aqui que localhost não funciona.

Localhost funciona sim. Eu só uso localhost em desenvolvimento.

Não existe restrição no OAuth2 para localhost. Cansei de usar localhost com Facebook, Twitter e Google.

Você faz uma chamada de callback então o servidor OAuth sabe o IP de quem o chamou e responde para o IP/porta correspondente.

Ele não tenta resolver ""http://localhost" e provavelmente você não está usando a porta 80, então tem que informar a porta real (8080, 3000, 4000, etc...). 

Faça isso tanto na configuração da App quanto nos parâmetros de chamada das URLs (não sei bem como é o SDK, mas acho que é bem parecido).

 

 

Boa sorte.

Share this post


Link to post
Share on other sites
  • 0

Oi pessoal !

 

Estou tentando pegar $access_token pelo sdk PHP, mas não estou conseguindo pegar o code. Não entendo muito de PHP e dos protocolos e todo material que li até agora não aborda minha duvida.

Já fiz:

- Já  instalei o SDK em servidor on line.

-  Criei uma pagina  com:

        require '/Meli/meli.php';

        $meli = new Meli('1234', 'a secret');

        $redirectUrl = $meli->getAuthUrl("http://somecallbackurl",Meli::$AUTH_URL['MLB']);

 

O link para autenticaçao e aceite do aplicativo para usuário funciona normalmente e ocorre direcionamento para a pagina que escolhi como "callback" já com o code de autorização.

 

Meu problema é não saber como pegar o esse "code", que fica na url. 

 

Na documentação tem esse codigo: $user = $meli->authorize($_GET['code'], 'http://somecallbackurl');

 

Mas não sei onde isso deve ficar. Tem que ficar na mesma pagina dos outros comandos ? Ou na pagina de callback ?

 

Desculpe a ignorancia mas não entendo nada de programação web e travei legal nessa parte.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this