Vous êtes en mesure d'obtenir la liste des amis qui se connectent à votre site Web en utilisant Facebook Login. TOUTEFOIS, seuls les amis qui sont également enregistrés sur votre site Web seront affichés. (En Facebook terme, seuls les amis qui utilisent également la même application)
De la page du développeur de facebook, vous pouvez obtenir les codes suivants.
login.php
$fb = new Facebook\Facebook([
'app_id' => '{app-id}', // Replace {app-id} with your app id
'app_secret' => '{app-secret}',
'default_graph_version' => 'v2.2',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['email','user_friends']; // Optional permissions (THIS IS WHERE YOU GET THE PERMISSION FOR FRIEND'S LIST)
$loginUrl = $helper->getLoginUrl('https://example.com/fb-callback.php', $permissions);
echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a>';
Fb-rappel.php
$fb = new Facebook\Facebook([
'app_id' => '{app-id}', // Replace {app-id} with your app id
'app_secret' => '{app-secret}',
'default_graph_version' => 'v2.2',
]);
$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({app-id}); // Replace {app-id} with your 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: " . $helper->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');
A login.php vous pouvez voir la ligne suivante
$permissions = ['email','user_friends'];
Cela demandera à l'utilisateur l'autorisation d'accéder aux amis qui utilisent aussi l'application.
Ce code obtenir la liste d'amis du graphique
try {
// Returns a `Facebook\FacebookResponse` object
$response = $this->fb->get('/me?fields=id,name,email,gender,user_friends,', $this->token);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
Les codes sont tous échantillon et sont pour référence seulement si vous avez l'idée de ce qui se passe dans le back-end. Je vous recommande vivement de jeter un oeil à https://developers.facebook.com/docs/php/howto/example_facebook_login
Si vous avez d'autres questions concernant le flux, vous pouvez ensuite créer une nouvelle question pour obtenir vos réponses.
Mise à jour: Manipulation user_friends < - c'est ce que vous cherchez
Une fois la connexion Facebook sur votre site, le membre connecté recevront un identifiant unique et permanent à votre site Web. Lorsque vous demandez le graphique user_friends de ce membre, Facebook Graph renvoie également une liste d'objets utilisateur pour les amis qui utilisent cette application. Et ces objets incluent l'identifiant de l'utilisateur (qui est unique à chaque application), à partir de l'identifiant, vous serez en mesure de lier des amis qui se connaissent dans votre application.
https://developers.facebook.com/docs/graph-api/reference/user/
Exemple Utilisateur A (ID: 1234) et l'utilisateur B (ID: 5678)
1) l'utilisateur A Connectez-vous à votre site Web en utilisant Facebook.
2) Vous essayez de demander user_friends à partir de Facebook de l'utilisateur A mais ne renvoie rien.
3) Utilisateur B enregistrer et se connecter à votre site Web en utilisant Facebook.
4) Vous essayez de demander user_friends de l'utilisateur B et graphiques Facebook retourne utilisateur ID A 1234.
De là, vous êtes en mesure de comprendre 5679 et 1234 sont des amis et vous êtes en mesure de concevoir votre base de données autour de cela pour associer vos membres en tant qu'amis.
Vous pouvez le faire uniquement si vous stockez les ID utilisateur fb de vos utilisateurs (les utilisateurs de votre site peuvent associer leurs comptes à des profils Facebook et stocker ces informations). – serg
Qu'en est-il de l'utilisation de certaines informations d'identification que Facebook fournit comme l'e-mail? Y a-t-il un moyen de faire correspondre les informations d'un utilisateur sur mon site à leurs informations sur Facebook? –