[PHP] Login Facebook SDK returned an error: No URL set!

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
56
Buonasera a tutti, sto cercando di implementare l'accesso al nostro sito mediante sdk di Facebook, non riesco a risolvere la configurazione degli script, ottengo sempre il seguente
errore (Facebook SDK returned an error: No URL set!)
Premesso che il codice che uso funziona in un'altro sito di test (ovviamente con un'app facebook diversa).
Questo e' il codice index.php dove appare il pulsante per il login e il richiamo dell'sdk, per ovvi motivi di sicurezza ho inserito xxxx al posto del nome del sito e ad altri dati sensibili.

PHP:
<?php
// index.php
require_once 'fbConfig.php';
require_once 'User.php';

if(isset($accessToken)){
if(isset($_SESSION['facebook_access_token'])){
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
}else{
// Put short-lived access token in session
$_SESSION['facebook_access_token'] = (string) $accessToken;

// OAuth 2.0 client handler helps to manage access tokens
$oAuth2Client = $fb->getOAuth2Client();

// Exchanges a short-lived access token for a long-lived one
$longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
$_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;

// Set default access token to be used in script
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
}

// Redirect the user back to the same page if url has "code" parameter in query string
if(isset($_GET['code'])){
header('Location: ./');
}

// Getting user facebook profile info
try {
$profileRequest = $fb->get('/me?fields=name,first_name,last_name,email,link,gen der,locale,picture');
$fbUserProfile = $profileRequest->getGraphNode()->asArray();
} catch(FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
session_destroy();
// Redirect user back to app login page
header("Location: ./");
exit;
} catch(FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}

// Initialize User class
/* ---------------------- PARTE DB ------------------------*/

$user = new User();

// Insert or update user data to the database
$fbUserData = array(
'oauth_provider'=> 'facebook',
'oauth_uid' => $fbUserProfile['id'],
'first_name' => $fbUserProfile['first_name'],
'last_name' => $fbUserProfile['last_name'],
'email' => $fbUserProfile['email'],
'gender' => $fbUserProfile['gender'],
'locale' => $fbUserProfile['locale'],
'picture' => $fbUserProfile['picture']['url'],
'link' => $fbUserProfile['link']
);
$userData = $user->checkUser($fbUserData);

// Put user data into session
$_SESSION['userData'] = $userData;

// Get logout url
$logoutURL = $helper->getLogoutUrl($accessToken, $redirectURL.'logout.php');

// Render facebook profile data
if(!empty($userData)){
$output = "<h1>APP ID ".$appId ."</h1>";
$output .= '<h1>Facebook Profile Details </h1>';
$output .= '<img src="'.$userData['picture'].'">';
$output .= '<br/>Facebook ID : ' . $userData['oauth_uid'];
$output .= '<br/>Name : ' . $userData['first_name'].' '.$userData['last_name'];
$output .= '<br/>Email : ' . $userData['email'];
$output .= '<br/>Gender : ' . $userData['gender'];
$output .= '<br/>Locale : ' . $userData['locale'];
$output .= '<br/>Logged in with : Facebook';
$output .= '<br/><a href="'.$userData['link'].'" target="_blank">Click to Visit Facebook Page</a>';
$output .= '<br/>Logout from <a href="'.$logoutURL.'">Facebook</a>';
}else{
$output = '<h3 style="color:red">Some problem occurred, please try again.</h3>';
}

}else{
// Get login url
$loginURL = $helper->getLoginUrl($redirectURL, $fbPermissions);

// Render facebook login button
$output = '<a href="'.htmlspecialchars($loginURL).'"><img src="images/fblogin-btn.png"></a>';
}
?>
<html>
<head>
<title>Login with Facebook using PHP by CodexWorld</title>
<style type="text/css">
h1{font-family:Arial, Helvetica, sans-serif;color:#999999;}
</style>
</head>
<body>
<!-- Display login button / Facebook profile information -->
<div><?php echo $output; ?></div>
</body>
</html>
?>
La classe User.php e incaricata alla gestione dell'utente e non credo interessi alla discusione, mentre quello che e' importante e' la parte di fbConfig.php

PHP:
<?php
// fbconfig.php
// sito riferimento https://www.codexworld.com/login-wit...ook-using-php/
error_reporting(E_ALL);
if(!session_id()){
session_start();
}

// Include the autoloader provided in the SDK
require_once __DIR__ . '/facebook-php-sdk/autoload.php';

// Include required libraries
use Facebook\Facebook;
use Facebook\Exceptions\FacebookResponseException;
use Facebook\Exceptions\FacebookSDKException;

/*
* Configuration and setup Facebook SDK
*/


$appId = '22xxxxxxxx'; //Facebook App ID
$appSecret = '50xxxxxx'; //Facebook App Secret
$redirectURL = 'http://xxxxx.altervista.org/fbapp0'; //Callback URL
$fbPermissions = array('email'); //Optional permissions



$fb = new Facebook(array(
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => 'v2.2',
));

// Get redirect login helper
$helper = $fb->getRedirectLoginHelper();

// Try to get access token
try {
if(isset($_SESSION['facebook_access_token'])){
$accessToken = $_SESSION['facebook_access_token'];
}else{
$accessToken = $helper->getAccessToken();
}
} catch(FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
?>

Nel pannello di configurazione dell'app facebook

URI di reindirizzamento OAuth validi

http://xxxx.altervista.org/ e http://xxxx.altervista.org/fbapp0/

Ripeto: questi due script copiati con la cartella sdk facebook in un altro sito funzionano benissimo .
Grazie in anticipo per le risposte, un saluto
 
Ultima modifica di un moderatore:
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Problemi con login facebook PHP 0
S [PHP] Stampa a video Nome e Cognome in seguito a login PHP 1
M [PHP] header (location..) non funzionante dopo login PHP 3
L [PHP] Visualizzare utente dopo login PHP 0
L [PHP] login con password_verify PHP 3
L [PHP] login con varie entrate PHP 3
L [PHP] login con password_verify - password_hash PHP 5
M [PHP] Problemi con il riconoscimento login. PHP 21
F [PHP] Login senza database PHP 3
F [php] sicurezza password form login PHP 2
M [PHP] Metodo migliore per fare login a un DB Mysql PHP 1
F Problema con pagine login in PHP PHP 2
Y [PHP] Errore di login dopo aver inserito Codice AdSense PHP 0
W [PHP] Login sicuro al web Service SOAP PHP 20
P [PHP] Limitare login ad un solo utente per volta PHP 12
L [PHP] login e protezione pagine con session PHP 3
L [PHP] login con la classe medoo.in PHP 5
I [PHP] [Javascript] login da smartphone a web PHP 3
P [PHP] Reindirizzamento post Login PHP 3
I [PHP] login con sessione singola PHP 1
bubino8 [WordPress] [PHP] Login diretto da bottone WordPress 4
D [PHP] Login Multiutente con pagina privata PHP 5
D problemi login php 5.6 mysql PHP 1
G PHP Login PHP 1
Laskot Login php e redirect PHP 1
K [PHP] Unica sessione login forum/sito PHP 1
bubino8 [PHP] Login Automatico PHP 1
M [PHP] Sessione Login PHP 15
C [PHP] Aprire la pagina dopo aver fatto il login PHP 1
fabry1986 [PHP] login PHP 2
Punix pagine login-logout php principiante PHP 4
S [PHP] Problemi con Login e pagina Utente PHP 5
ANDREA20 [PHP] Echo login PHP 2
P [PHP] aiuto creazione login PHP 16
webmachine [PHP] Problemi con Login e pagina Utente PHP 3
F Problemi login con lo script php PHP 2
M login.php PHP 12
M Script php login con password in scadeza ogni tre mesi PHP 2
otto9due [risolto] Problema sessioni php e login PHP 5
D creazione di una login in php PHP 1
D aiuto con pag di login in php PHP 1
M Pagina di registrazione e login in php PHP 4
C Creare Login php PHP 0
M Login con php PHP 2
D Pagina login php-mysql PHP 1
E [PHP + MySql] Sito con login e sessioni PHP 8
helpdesk Nessuna session start in login PHP PHP 12
L [PHP/MYSQL] Login con ricordo utente PHP 1
max_400 il login in php è sicuro? PHP 14
I [PHP]Problema sito con form login in ogni pagina PHP 7

Discussioni simili