• 0
Sign in to follow this  
Igor Rykovski

Usando client_credentials pra autenticar

Question

Pessoal, a empresa aqui tem uma aplicação que devido ao compliance com os clientes é toda local. Toda a comunicação é pela intranet ou VPN.

Estamos implementando as ferramentas de vendas do MELI, e como podem imaginar temos o desafio do OAuth.

Não podemos ter uma redirect URI. Até daria, mas o esforço pra conseguir mudar o compliance não compensa. 

Eu sei que uma das alternativas no OAuth é o client credencials. E vi nos fóruns que no Mercado Pago é comum utilizarem. Porém no Meli eu só vi algumas referências aqui no fórum, mas nada concreto. 

A pergunta é, se posso usar o client credencials, onde consigo o ID e o Secret do cliente?  

Entrei na minha conta pessoal de vendas e não achei nada. Não sei também se essa informação é restrita a lojas dentro do Meli.

Podem dar uma luz?

 

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 2

É possível fazer autenticação sem URL de retorno. A implementação oath permite isso . Eu faço via Delphi mas o equivalente em php é assim :

 

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.mercadolibre.com/oauth/token",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "client_id=XYZ&client_secret=XYZ&grant_type=client_credentials",
  CURLOPT_HTTPHEADER => array(
    "Cache-Control: no-cache",
    "Content-Type: application/x-www-form-urlencoded"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

 

Share this post


Link to post
Share on other sites
  • 0
16 hours ago, Igor Rykovski said:

Pessoal, a empresa aqui tem uma aplicação que devido ao compliance com os clientes é toda local. Toda a comunicação é pela intranet ou VPN.

Estamos implementando as ferramentas de vendas do MELI, e como podem imaginar temos o desafio do OAuth.

Não podemos ter uma redirect URI. Até daria, mas o esforço pra conseguir mudar o compliance não compensa. 

Eu sei que uma das alternativas no OAuth é o client credencials. E vi nos fóruns que no Mercado Pago é comum utilizarem. Porém no Meli eu só vi algumas referências aqui no fórum, mas nada concreto. 

A pergunta é, se posso usar o client credencials, onde consigo o ID e o Secret do cliente?  

Entrei na minha conta pessoal de vendas e não achei nada. Não sei também se essa informação é restrita a lojas dentro do Meli.

Podem dar uma luz?

 

O principal é obter o token de acesso e não tem muitas opções para fazer isso sem o redirect. Uma opção seria usar a autenticação via javascript, porém ela não suporta o uso offline, então, cada vez que precisar usar, o usuário tem que se autenticar novamente.

 

O ID e o Secret são da sua aplicação, a que você cria no painel de aplicações do ML (esse é o seu client) e não do cliente (usuário do sistema). Outra coisa, o client credentials não é uma alternativa, é o único caminho.

Edited by Diogenes Lima

Share this post


Link to post
Share on other sites
  • 0

@gbandoni , eu utilizo também a linguagem Delphi, já fiz todos os processos via usuário test, onde criei este usuário test diretamente pelo site da ML, mas agora preciso colocar em produção para os nossos clientes e não sei como criar um client_id e secret_key para o cliente nosso, lembrando que já criei a APP nossa, já está vinculado a conta do cliente, pois o mesmo fez um logon na conta dele e já aparece a nossa APP no menu Aplicativos Conectados, pois foi executado a URL de vinculação ( https://auth.mercadolivre.com/authorization?response_type=code&client_id=99999999999 )  está tudo certo, agora não sei como gerar o cliente_id e o secret_key do cliente para que o mesmo me retorno o access_token e consequentemente eu possa através deste access_token efetuar o envio dos produtos e baixa dos pedidos.

Poderia me enviar um exemplo de como gerar este cliente_id e secret_key, pode ser via ferramente do Delphi, o Rest Debugger do Delphi mesmo ?

Grato,

Eduardo

Edited by EDUARDO.FONSECA

Share this post


Link to post
Share on other sites
  • 0

No soy el mas experto o no se si entiendo bien tu pregunta pero el ID y el Secret key se generan en el momento de crear tu aplicacion con el siguiente enlace te debe dirigir a la aqutorizacion para que la cuenta de mercadolibre se vincule a  tu aplicacion segido te dirige a tu  aplicacion y generar el code http://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=xxxxxxxxxxxxxxx&redirect_uri=https://xxxxxxxxxxxxxxxxxxx  algo asi debe aparecer en tu navegador  https://tupagina.?code=TG-xxxxxxxxxxxxxxxxxxxxxxxxxx

en Postman he probado haciendo un post a esta url  https://api.mercadolibre.com/oauth/token?grant_type=authorization_code&client_id=xxxxxxxxxxxxxxxxxxxx&client_secret=5w7h1QdCveH70BiQiun6yHU5rBQOv2Ss&code=TGxxxxxxxxxxxxxxxxxxxxxxxxxx&redirect_uri=https://tupaginasphp  te debe devolver un json con la siguiente info

{
    "access_token""APP_USR-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "token_type""bearer",
    "expires_in"21600,
    "scope""offline_access read write",
    "user_id": xxxxxxxxxxxxxxxxxxxxx,
    "refresh_token""TG-xxxxxxxxxxxxxxxxxxxxxxxx"
}

Yo estoy en el dilema que quiero implementarlo en php pero no se como hacer el post para que me devuelva el TOKEN Y me lo guarde para llamarlo en otras consultas o acciones.

 

 

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