SDK Facebook
Posté : 09 nov. 2017, 12:27
Bonjour,
Après avoir résolu mes problèmes de mails je me penche sur la publication automatique su une page Facebook avec le sdk php-graph.
Je coince dès le début, à la récupération du Token.
Voici la procédure que j'ai suivi:
Installation via Composer du sdk
Création d'une app sur le developpeur facebook, je lui indique le Domaine de l'app, à savoir mon nom de domaine, je lui indique également l'url du site et je récupère id et clé secrète.
Je crée 2 fichiers, recupToken.php et fb-callback.php que je mets dans le dossier:
facebook/src/Facebook
Voici ces deux fichiers:
Je tape l'url dans mon navigateur, clic sur Log in... , mais j'ai un warning:
Impossible de charger cette URL: Le domaine de cette URL n’est pas inscrit dans ceux de l’application. Pour pouvoir importer cette URL, ajoutez tous les domaines et sous-domaines de votre application au champ Domaines des paramètres de l’application.
Vu ce warning je me dit que c'est du côté de facebook developpeur que je suis planté, mais je coince, je ne vois pas ce que je n'ai surement pas ou mal renseigné.
Merci pour votre aide.
Stef
Après avoir résolu mes problèmes de mails je me penche sur la publication automatique su une page Facebook avec le sdk php-graph.
Je coince dès le début, à la récupération du Token.
Voici la procédure que j'ai suivi:
Installation via Composer du sdk
Création d'une app sur le developpeur facebook, je lui indique le Domaine de l'app, à savoir mon nom de domaine, je lui indique également l'url du site et je récupère id et clé secrète.
Je crée 2 fichiers, recupToken.php et fb-callback.php que je mets dans le dossier:
facebook/src/Facebook
Voici ces deux fichiers:
Code : Tout sélectionner
<?php
session_start();
include 'autoload.php';
$fb = new Facebook\Facebook([
'app_id' => 'monid',
'app_secret' => 'clesecret',
'default_graph_version' => 'v2.11',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['email','publish_pages','manage_pages','user_friends','public_profile']; // Optional permissions
$loginUrl = $helper->getLoginUrl('http://mon-site/facebook/src/Facebook/fb-callback.php', $permissions);
echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
?>Code : Tout sélectionner
<?php
session_start();
include 'autoload.php';
$fb = new Facebook\Facebook([
'app_id' => 'appid',
'app_secret' => 'appsecret',
'default_graph_version' => 'v2.11',
]);
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
if (! isset($accessToken)) {
if ($helper->getError()) {
header('HTTP/1.0 401 Unauthorized');
echo "Error: " . $helper->getError() . "\n";
echo "Error Code: " . $helper->getErrorCode() . "\n";
echo "Error Reason: " . $helper->getErrorReason() . "\n";
echo "Error Description: " . $helper->getErrorDescription() . "\n";
} else {
header('HTTP/1.0 400 Bad Request');
echo 'Bad request';
}
exit;
}
// Logged in
echo '<h3>Access Token</h3>';
var_dump($accessToken->getValue());
// The OAuth 2.0 client handler helps us manage access tokens
$oAuth2Client = $fb->getOAuth2Client();
// Get the access token metadata from /debug_token
$tokenMetadata = $oAuth2Client->debugToken($accessToken);
echo '<h3>Metadata</h3>';
var_dump($tokenMetadata);
// Validation (these will throw FacebookSDKException's when they fail)
$tokenMetadata->validateAppId($config['app_id']);
// If you know the user ID this access token belongs to, you can validate it here
//$tokenMetadata->validateUserId('123');
$tokenMetadata->validateExpiration();
if (! $accessToken->isLongLived()) {
// Exchanges a short-lived access token for a long-lived one
try {
$accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
} catch (Facebook\Exceptions\FacebookSDKException $e) {
echo "<p>Error getting long-lived access token: " . $e->getMessage() . "</p>\n\n";
exit;
}
echo '<h3>Long-lived</h3>';
var_dump($accessToken->getValue());
}
$_SESSION['fb_access_token'] = (string) $accessToken;
// User is logged in with a long-lived access token.
// You can redirect them to a members-only page.
//header('Location: https://example.com/members.php');
?>Je tape l'url dans mon navigateur, clic sur Log in... , mais j'ai un warning:
Impossible de charger cette URL: Le domaine de cette URL n’est pas inscrit dans ceux de l’application. Pour pouvoir importer cette URL, ajoutez tous les domaines et sous-domaines de votre application au champ Domaines des paramètres de l’application.
Vu ce warning je me dit que c'est du côté de facebook developpeur que je suis planté, mais je coince, je ne vois pas ce que je n'ai surement pas ou mal renseigné.
Merci pour votre aide.
Stef