• 0
TEINGTEING

DUDA SOBRE LA DOCUMENTACION FLUJO SERVER SIDE

Question

Buen dia, soy principiante y tengo 2 webforms (ASP.NET)

WebForm1: Donde hago el redirect para la autorizacion del usuario y luego rederigir al WebForm2

WebForm2: Donde hago el GET del CODE y luego llamo a la funcion AUTHORIZE para intercambiar el CODE por el TOKEN

Documentacion: https://developers.mercadolibre.com.ar/es_ar/server-side

Las consultas son las siguientes sobre la documentacion del Flujo Server Side:

1) Punto a) 

https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=APP_ID&redirect_uri=REDIRECT_URL

¿El parametro "REDIRECT_URL" es "http://localhost:56108/WebForm2.aspx"?

 

2) Punto b)

GET
http://YOUR_REDIRECT_URI?code=SERVER_GENERATED_AUTHORIZATION_CODE

 2.1) ¿El parametro "YOUR_REDIRECT_URI" del GET es "http://localhost:56108/WebForm2.aspx"?

2.2) ¿"SERVER_GENERATED_AUTHORIZATION_CODE" es un parametro? ¿o se escribe literalmente así en el GET?

 

3) Punto c)

POST
https://api.mercadolibre.com/oauth/token?grant_type=authorization_code&client_id=APP_ID&client_secret=SECRET_KEY&code=SERVER_GENERATED_AUTHORIZATION_CODE&redirect_uri=REDIRECT_URI

 ¿El parametro "REDIRECT_URI" del POST es "http://localhost:56108/WebForm2.aspx"?

 

Por ultimo, ¿es correcta la configuracion de la app?

20190115104430.jpg

 

20190115104608.jpg

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Encontré una solución en aquí en el foro pero no tengo a la mano quien es autor

Creas una tabla donde guardes tus accesos (estoy trabajando con magento 2) los que obtienes por primera vez  tu access_token y refresh_token en mi tabla solo guardo esos datos y tmb el appId, expiresId

$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();
    
    // Obtenemos datos de acceso ML
    $tableMDM = $resource->getTableName('vendor_datos_mercadolibre');
    $selectDatos = "SELECT * FROM " . $tableMDM;
    $datos = $connection->fetchAll($selectDatos);
    foreach ($datos as $row){
      $access = $row['accessToken'];
      $refresh = $row['refreshToken'];
    }
    
    //Datos de Acceso
    $appId = '2316';
    $secretKey = 'iKeAp';
    $redirectURI = 'https://example/admin/mercadolibre/action/publicar';
    $accessToken = $access;
    $refresh_token = $refresh;
    $siteId = 'MLM';
    
    //Conexion API ML
    $ml_session = $objectManager->create('\Vendor\MercadoLibre\Lib\Meli\Meli', ['client_id' => $appId, 'client_secret' => $secretKey, 'access_token' => $accessToken, 'refresh_token' => $refresh_token]);
    $refresh_tokn = $ml_session->refreshAccessToken();
    
    //Obtencion del nuevo token
    $new_token = $refresh_tokn['body']->access_token;
    $new_refresh_token = $refresh_tokn['body']->refresh_token;
    $new_expires_in = $refresh_tokn['body']->expires_in;
    
    //Guardamos Datos conexion ML
    $tableName = $resource->getTableName('vendor_datos_mercadolibre');
    $sql = "Update " . $tableName . " SET accessToken = '" .$new_token. "', refreshToken = '" .$new_refresh_token. "', expiresIn = " .$new_expires_in. " WHERE appID = '" . $appId . "'";
    $connection->query($sql);
    
    /* PRUEBA CONEXION
    $params = array();
    $url = '/sites/' . $siteId;
    $result = $ml_session->get($url, $params);
    */

En si lo que haces es un update cada que cambia el access_token (modifique el código para que funcionara en magento 2, el del autor original esta en PHP)

Espero y te sirva

saludos 😛

Share this post


Link to post
Share on other sites
  • 0

Creo que yo puse un codigo en php para hacer el refresh al token.

Y asi debe de ser, tienes que guardar esa informacion en tu base de datos y cada 5 horas obtener un nuevo token, esto lo haces por medio de un cronjob y asi ya no tienes que decirle a tu cliente que cada 5 horas actualice el token.

Saludos

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