• 0
Monqueiro

Não está autenticando no sdk-php

Question

Fiz a configuração com meu id e secret no arquivo configApp,php e no index tem essa linha :

$meli = new Meli($appId, $secretKey);

if($_GET['code'] || $_SESSION['access_token']) {
 

Ele não encontra nada e já passa para o else. Porque não funciona ? 

 

 

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0
15 hours ago, Monqueiro said:

Fiz a configuração com meu id e secret no arquivo configApp,php e no index tem essa linha :

$meli = new Meli($appId, $secretKey);

if($_GET['code'] || $_SESSION['access_token']) {
 

Ele não encontra nada e já passa para o else. Porque não funciona ? 

 

 

Você pulou um monte de passos. Leia a documentação com atenção

 

https://github.com/mercadolibre/php-sdk

Share this post


Link to post
Share on other sites
  • 0
On 10/15/2018 at 10:15 AM, gbandoni said:

Você pulou um monte de passos. Leia a documentação com atenção

 

https://github.com/mercadolibre/php-sdk

Como assim pulei um monte de passos ? 

Fiz o meu cadastro e criei um app, fiz um cadastro no heroku e já está tudo configurado, só que não vai.
Deve ter alguma configuração errada lá.

Se puder me ajudar, passo meu contato.

 

Share this post


Link to post
Share on other sites
  • 0
9 hours ago, Monqueiro said:

Como assim pulei um monte de passos ? 

Fiz o meu cadastro e criei um app, fiz um cadastro no heroku e já está tudo configurado, só que não vai.
Deve ter alguma configuração errada lá.

Se puder me ajudar, passo meu contato.

 

como sempre digo: antes de começar a desenvolver uma aplicação entenda profundamente os conceitos, antes de tudo você deve ler e compreender como funciona o padrão de autenticação oAuth 2.0 (que é usada pelo Mercado Livre, mas também pelo Google, Facebook, etc)... depois de entender perfeitamente como o fluxo funciona, aí sim comece a trabalhar em cima do SDK do ML

Share this post


Link to post
Share on other sites
  • 0

Pessoal, eu agradeço muito as respostas enviadas aqui, mas, eu já li a documentação, já desci o sdk-php, ja fiz o app, já fiz o cadastro do app no heroku. 
Respostas vazias ou dar "esporro", não resolvem o meu problema. 
Eu não estou conseguindo identificar qual é o problema que estou tendo, já que ele diz que eu não estou autorizado, simples assim, por isso vim pedir ajuda, senão, não estaria aqui. 
Quem puder ajudar, ok, muito obrigado.

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, Monqueiro said:

Pessoal, eu agradeço muito as respostas enviadas aqui, mas, eu já li a documentação, já desci o sdk-php, ja fiz o app, já fiz o cadastro do app no heroku. 
Respostas vazias ou dar "esporro", não resolvem o meu problema. 
Eu não estou conseguindo identificar qual é o problema que estou tendo, já que ele diz que eu não estou autorizado, simples assim, por isso vim pedir ajuda, senão, não estaria aqui. 
Quem puder ajudar, ok, muito obrigado.

Eu disse que tu ta pulando passos porque notoriamente tu não entendeu o exemplo do sdk.

?php
session_start();
require '../Meli/meli.php';
require '../configApp.php';
$meli = new Meli($appId, $secretKey);
if(isset($_GET['code']) || isset($_SESSION['access_token'])) {
	// If code exist and session is empty
	if(isset($_GET['code']) && !isset($_SESSION['access_token'])) {
		// //If the code was in get parameter we authorize
		try{
			$user = $meli->authorize($_GET["code"], $redirectURI);
			
			// Now we create the sessions with the authenticated user
			$_SESSION['access_token'] = $user['body']->access_token;
			$_SESSION['expires_in'] = time() + $user['body']->expires_in;
			$_SESSION['refresh_token'] = $user['body']->refresh_token;
		}catch(Exception $e){
			echo "Exception: ",  $e->getMessage(), "\n";
		}
	} else {
		// We can check if the access token in invalid checking the time
		if($_SESSION['expires_in'] < time()) {
			try {
				// Make the refresh proccess
				$refresh = $meli->refreshAccessToken();
				// Now we create the sessions with the new parameters
				$_SESSION['access_token'] = $refresh['body']->access_token;
				$_SESSION['expires_in'] = time() + $refresh['body']->expires_in;
				$_SESSION['refresh_token'] = $refresh['body']->refresh_token;
			} catch (Exception $e) {
			  	echo "Exception: ",  $e->getMessage(), "\n";
			}
		}
	}
	echo '<pre>';
		print_r($_SESSION);
	echo '</pre>';
} else {
	echo '<a href="' . $meli->getAuthUrl($redirectURI, Meli::$AUTH_URL[$siteId]) . '">Login using MercadoLibre oAuth 2.0</a>';
}

É a primeira execução do script ?

entao não tem $_GET['code']

Tu tem uma session com o acess_token ja informado ?

se nao autenticou nao vai ter um $_SESSION['access_token'] informado

 

Então na primeira execução é óbvio que ele vai cair no else

O que esse script de exemplo faz é o básico do fluxo padrão oath2

image.png.3f8c5d1d8c56bb02693b477ef0586685.png

Isso está na documentação que te passaram.

O pessoal aqui não gosta de passar código pronto . Eles sempre vão te passar os links para tu entender e você mesmo fazer. O programador ou o analista que vai projetar isso precisa entender a documentação e fazer a partir dai. Eu prefiro não passar coisa pronta também , eu prefiro responder problemas de programação

 

Share this post


Link to post
Share on other sites
  • 0
2 hours ago, gbandoni said:

Eu disse que tu ta pulando passos porque notoriamente tu não entendeu o exemplo do sdk.


?php
session_start();
require '../Meli/meli.php';
require '../configApp.php';
$meli = new Meli($appId, $secretKey);
if(isset($_GET['code']) || isset($_SESSION['access_token'])) {
	// If code exist and session is empty
	if(isset($_GET['code']) && !isset($_SESSION['access_token'])) {
		// //If the code was in get parameter we authorize
		try{
			$user = $meli->authorize($_GET["code"], $redirectURI);
			
			// Now we create the sessions with the authenticated user
			$_SESSION['access_token'] = $user['body']->access_token;
			$_SESSION['expires_in'] = time() + $user['body']->expires_in;
			$_SESSION['refresh_token'] = $user['body']->refresh_token;
		}catch(Exception $e){
			echo "Exception: ",  $e->getMessage(), "\n";
		}
	} else {
		// We can check if the access token in invalid checking the time
		if($_SESSION['expires_in'] < time()) {
			try {
				// Make the refresh proccess
				$refresh = $meli->refreshAccessToken();
				// Now we create the sessions with the new parameters
				$_SESSION['access_token'] = $refresh['body']->access_token;
				$_SESSION['expires_in'] = time() + $refresh['body']->expires_in;
				$_SESSION['refresh_token'] = $refresh['body']->refresh_token;
			} catch (Exception $e) {
			  	echo "Exception: ",  $e->getMessage(), "\n";
			}
		}
	}
	echo '<pre>';
		print_r($_SESSION);
	echo '</pre>';
} else {
	echo '<a href="' . $meli->getAuthUrl($redirectURI, Meli::$AUTH_URL[$siteId]) . '">Login using MercadoLibre oAuth 2.0</a>';
}

É a primeira execução do script ?

entao não tem $_GET['code']

Tu tem uma session com o acess_token ja informado ?

se nao autenticou nao vai ter um $_SESSION['access_token'] informado

 

Então na primeira execução é óbvio que ele vai cair no else

O que esse script de exemplo faz é o básico do fluxo padrão oath2

image.png.3f8c5d1d8c56bb02693b477ef0586685.png

Isso está na documentação que te passaram.

O pessoal aqui não gosta de passar código pronto . Eles sempre vão te passar os links para tu entender e você mesmo fazer. O programador ou o analista que vai projetar isso precisa entender a documentação e fazer a partir dai. Eu prefiro não passar coisa pronta também , eu prefiro responder problemas de programação

 

Muito obrigado.

Share this post


Link to post
Share on other sites
  • 0
13 hours ago, Monqueiro said:

Pessoal, eu agradeço muito as respostas enviadas aqui, mas, eu já li a documentação, já desci o sdk-php, ja fiz o app, já fiz o cadastro do app no heroku. 
Respostas vazias ou dar "esporro", não resolvem o meu problema. 
Eu não estou conseguindo identificar qual é o problema que estou tendo, já que ele diz que eu não estou autorizado, simples assim, por isso vim pedir ajuda, senão, não estaria aqui. 
Quem puder ajudar, ok, muito obrigado.

realmente dar esporro não resolve, o que resolve é estudar! o que o @gbandoni fez foi te dar mastigadinho o que você deveria ter estudado (inclusive eu não faria isso).. antes de começar a desenvolver é preciso entender o que se está fazendo, o diagrama que ele te mandou é o fluxo básico de oAuth 2.0

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