2009-12-28 5 views
1

J'ai presque facebook connect fonctionnant comme j'en ai besoin sur mon site, j'ai besoin de quelques bugs encore, ci-dessous est des documents facebook connect, il liste les 3 options URL différentes ci-dessous dans les paramètres de FB connect. Cela pourrait être très utile pour moi car lorsqu'un utilisateur se connecte pour la 1ère fois sur mon site avec facebook, je dois y créer un profil mysql avec les données de profil de facebook. Ok, donc je suis un peu confus, je comprends une URL de redirection redirige juste le navigateur vers une page, mais vous pouvez voir que 2 de ces liens que je sauvegarde ci-dessous sont pour une URL de rappel, donc je suppose que Facebook Post Data à l'URL que je fournis? Si je me trompe, comment puis-je savoir quelles données sont affichées dans le Ping?Facebook Connect Ping vs URL de redirection?

1)

Post-URL Autorisez Callback: Facebook pings cette URL lorsqu'un utilisateur autorise votre application pour la première fois. Vous pouvez également appeler users.isAppUser à déterminer si l'utilisateur a autorisé votre application.

2)

post-Autorisez Redirect URL: Vous pouvez rediriger un utilisateur vers cette URL après que l'utilisateur autorise votre application pour la première fois . Vous pouvez utiliser cette URL uniquement si l'utilisateur autorise votre application via login.php et non la boîte de dialogue de connexion.

3)

Post-Supprimer l'URL Callback: Facebook pings l'URL lorsqu'un utilisateur supprime votre application .


Lorsque l'utilisateur est redirigée dans le navigateur que je peux exécuter du code comme ceci pour arriver données de profil de facebook mais je ne suis pas sûr quand facebook données pings?

$user_details=$fb->api_client->users_getInfo($fb_user, array('last_name', 'first_name', 'proxied_email','birthday_date', 'sex', 'is_app_user', 'current_location', 'about_me', 'activities', 'interests', 'relationship_status', 'pic_big', 'pic_small', 'books')); 

$firstName = $user_details[0]['first_name']; 
..... 

Répondre

2

Je ne pense pas que je completelly comprends votre question, donc je vais essayer de répondre à ce que je peux - s'il y a quelque chose qui manque, s'il vous plaît commentaire ici et je vais modifier la réponse en conséquence.

Vous avez raison de supposer que Facebook envoie des données POST lors d'un ping. Donc, fondamentalement ce que vous feriez sur le point de terminaison donné (l'url que vous avez dit Facebook pour ping) est de lire le dict $_REQUEST pour les données que vous voulez. Une liste de tous les paramètres que Facebook envoie sur ping peut être trouvée here.

Que se passerait-il est la suivante:

  1. utilisateur clique pour vous connecter avec votre site avec Facebook Connect
  2. Une page log-in Facebook montre une confirmation à l'utilisateur demandant s'il permet cette opération
  3. Si permis, Facebook envoie les données POST à ​​l'URL spécifiée dès que possible

la même chose se produit lorsque l'utilisateur supprime elle-même de votre site via Facebook Connect.

Veuillez noter que vous devez valider soigneusement les données reçues sur votre terminal. Puisque vous créez des données persistantes sur chaque demande de publication, au moins assurez-vous que les demandes ne peuvent être reçues que de Facebook. Vous pouvez également rediriger l'utilisateur quelque part après l'autorisation, appelez users_getInfo et vérifiez si is_app_user est vrai. Si c'est le cas, vous continuez à créer vos entités sur votre base de données.

0

1) Le rappel post-autorisation est l'URL Facebook publiera des données lorsqu'un utilisateur autorise votre application/site. C'est par tous les moyens, pas seulement par Facebook Connect. Vous devriez conserver l'ID utilisateur qui est passé avec ceci afin que vous puissiez savoir quels utilisateurs ont autorisé votre application/site. Vous pouvez ensuite utiliser l'ID utilisateur pour envoyer des messages (c'est-à-dire des notifications) à l'utilisateur, des messages typiques d'application à utilisateur. C'est "ping" parce que Facebook ignore toute réponse que vous envoyez. Vous ne répondez pas.

2) Lorsqu'un utilisateur autorise votre application, vous pouvez demander à Facebook d'envoyer l'utilisateur à cette URL. Par exemple, une page d'accueil et/ou une introduction. Cela ne se produit pas sous Facebook Connect, seulement sous la plateforme Facebook.

3) Exactement le contraire de # 1. Facebook vous permet simplement de savoir que quelqu'un a supprimé/désautorisé votre demande. Encore une fois, vous n'avez pas besoin de répondre.

Les éléments 1 et 2 vous permettent de savoir quels identifiants ont autorisé votre application. Vous ne pouvez pas interroger Facebook pour cela. Facebook écrit un cookie sous votre domaine si l'utilisateur est connecté à Facebook et s'est connecté à votre site. Vous pouvez toujours vérifier ce cookie lorsqu'un utilisateur arrive et vous connecter automatiquement à votre site. Vous devriez vérifier les données de cookie, bien sûr. Les instructions pour le faire sont ici: http://wiki.developers.facebook.com/index.php/Verifying_The_Signature