• 0
Sign in to follow this  
Mmamani

Problema obtener Access Token

Question

Hola,

 

Estoy utilizando el SDK  de ASP.NET en una aplicación Server-Side. (sdkVersion = "MELI-NET-SDK-1.0.2";)

 

Utilizando mi ClientID y mi ClientSecret, obtengo el AccessCode.

 

Cuando intento solicitar el Access Token, obtengo como "response", el código HTML de mi callBackURL en vez de obtener el JSON correspondiente.

 

Alguno tuvo este problema? 

Tienen idea como solucionarlo?

 

Desde ya, muchas gracias!

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

No subí el código porque lo que programé yo es muy simple.

 

Ventana 1 (LogIn1):

long ClientID;
        string ClientSecret;


        private void btnLogin1_Click(object sender, EventArgs e)
        {
            
            ClientID = long.Parse(txtID.Text);
            ClientSecret = txtSecret.Text;


            Meli m = new Meli(ClientID, ClientSecret);


            Process.Start(@m.GetAuthUrl(Meli.AuthUrls.MLA, "https://web.whatsapp.com/"));
           
            var form = new LogIn2(ClientID, ClientSecret, m);
            form.Show();
        }

Ventana 2 (LogIn2):

long ClientID;
        string ClientSecret;
        string Code;
        Meli m;


        public LogIn2()
        {
            InitializeComponent();
        }


        //CONSTRUCTOR CON PARAMETROS
        public LogIn2(long ClientID, string ClientSecret, Meli m) {
            this.ClientID = ClientID;
            this.ClientSecret = ClientSecret;
            this.m = m;
            InitializeComponent();
        }


        private void btnLogIn2_Click(object sender, EventArgs e)
        {
            Meli.ApiUrl = "https://web.whatsapp.com/";


            Code = txtCode.Text;


            m.Authorize(Code, "https://web.whatsapp.com/");


            txtAccess.AppendText(m.AccessToken);
            txtRefresh.AppendText(m.RefreshToken);
        }

En caso de que todo eso esté correcto, el problema estaría en el SDK de ML, que es lo que preguntaba. De cualquier manera, adjunto los métodos.

public void Authorize(string code, string redirectUri)
        {
            var request = new RestRequest("/oauth/token?grant_type=authorization_code&client_id={client_id}&client_secret={client_secret}&code={code}&redirect_uri={redirect_uri}", Method.POST);


            request.AddParameter("client_id", this.ClientId, ParameterType.UrlSegment);
            request.AddParameter("client_secret", this.ClientSecret, ParameterType.UrlSegment);
            request.AddParameter("code", code, ParameterType.UrlSegment);
            request.AddParameter("redirect_uri", redirectUri, ParameterType.UrlSegment);


            request.AddHeader("Accept", "application/json");


            var response = ExecuteRequest(request);


            if (response.StatusCode.Equals(HttpStatusCode.OK))
            {
                var token = JsonConvert.DeserializeAnonymousType(response.Content, new
                {
                    refresh_token = "",
                    access_token = "",
                    expires_in = 0,
                    user_id = "",
                    scope = "",
                    token_type = ""
                });
                this.AccessToken = token.access_token;
                this.RefreshToken = token.refresh_token;
                this.ExperiIn = Convert.ToInt64(token.expires_in);
                this.Scope = token.scope;
                this.UserId = token.user_id;
                this.TokenType = token.token_type;
            }
            else
            {
                throw new AuthorizationException();
            }
        }

Share this post


Link to post
Share on other sites
  • 0

if ($erro=="URL_callback_errada"){

   $texto =  "kkkkkkkkkkkk. como é possível um erro deste?!?";

}else{

     $texto = "Ou não é erro e só quis esconder a URL de callback?\n

          Se quer esconder o URL de callback pelo menos use uma coisa estranha!  www.xxxxxxxxxxxxxxx.com.br\n

          E se foi este o caso veja que atrapalha para quem lê, pois avalia o erro com um foco indevido.\n

          Você deve ser mais acertivo ao demonstrar o erro.";

}

echo $texto;

Share this post


Link to post
Share on other sites
  • 0

Efectivamente, era el CallBackURL.

 

En ningún lado dice nada acerca de eso. Elegí una cualquiera porque desde el SDK no se ve interacción con la misma, así que su objetivo no está claro.

De hecho, con la misma URL, me permitía obtener el Access Code.

 

Gracias.

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