2011-02-23 3 views
5

J'essaie d'utiliser Facebook Connect pour mon site Web. Tout va bien quand j'essaie de me connecter en tant qu'utilisateur normal, toutes les informations correctes reviennent. Cependant, lorsque je me connecte en tant que compte "PAGE", les choses commencent à devenir bizarres. Après une connexion réussie, si j'utilise ce qui suit: https://graph.facebook.com/me/?access_token= {jeton d'accès}, j'obtiens un "faux" retour. Si je remplace à la place "moi" avec l'ID du compte de page, alors j'obtiens l'information correcte en arrière.Facebook Graph API retourne false pour les comptes de page

Un autre problème est, après la connexion, le cookie de session fbs_appID est en train de définir le mauvais "uid" après une connexion réussie en tant que compte "PAGE". Tout va bien avec un compte utilisateur normal.

Tous les paramètres sur ma page sont "13+" et il n'y a pas de restrictions par pays.

Quelqu'un peut-il aider s'il vous plaît?

Répondre

-1

Je pense que quelque chose ne va pas avec votre partie de connexion.

Si vous utilisez Javascript SDK:

Essayez cette console.dir(FB.getSession());

Si vous utilisez SDK PHP: essayez:

$session = $facebook->getSession(); 
print_r($session); 

Et vérifier dans la console si vous obtenez le bon session ou non.

http://graph.facebook.com/me est toujours disponible jusqu'à et à moins que vous soyez connecté. Il ne nécessite même pas d'autorisations supplémentaires.

1

Nous obtenons ce même comportement.

Si vous vous connectez en tant que page Facebook, Facebook affiche généralement une boîte de dialogue disant quelque chose comme "Vous ne pouvez pas vous connecter en tant que page Facebook.

Vous devriez donc toujours avoir un utilisateur régulier dans votre code de connexion FB.

Mais il semble parfois que Facebook ne gère pas cela correctement, et permet à l'utilisateur d'essayer de se connecter en tant que page Facebook. Et puis le code d'accès que vous obtenez ne vous permet pas d'obtenir des informations sur l'utilisateur.

Donc, je pense qu'il n'y a rien que vous pouvez faire, avertir juste l'utilisateur qu'il doit se connecter en tant que profil Facebook utilisateur régulier.

Voici l'info complète de trafic que nous obtenons: (avec codes anonymisées):

 
GET /oauth/access_token?client_id=xxxxx&redirect_uri=xxxxx&client_secret=xxxx&code=xxx HTTP/1.1 
Connection: close 
Host: graph.facebook.com 


HTTP/1.1 200 OK 
Cache-Control: private, no-cache, no-store, must-revalidate 
Content-Type: text/plain; charset=UTF-8 
Expires: Sat, 01 Jan 2000 00:00:00 GMT 
Pragma: no-cache 
X-FB-Rev: 401390 
X-FB-Server: 10.42.17.21 
Connection: close 
Date: Wed, 06 Jul 2011 10:38:11 GMT 
Content-Length: 122 

access_token=xxxx&expires=4909 



GET /me?access_token=xxxx HTTP/1.1 
Connection: close 
Host: graph.facebook.com 

HTTP/1.1 200 OK 
Cache-Control: private, no-cache, no-store, must-revalidate 
Content-Type: text/javascript; charset=UTF-8 
ETag: \"7cb6efb98ba5972a9b5090dc2e517fe14d12cb04\" 
Expires: Sat, 01 Jan 2000 00:00:00 GMT 
P3P: CP=\"Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p\" 
Pragma: no-cache 
X-FB-Rev: 401390 
Set-Cookie: datr=aTsUTlxHtaaaK67aCdYmQbCO; expires=Fri, 05-Jul-2013 10:39:37 GMT; path=/; domain=.facebook.com; httponly 
X-FB-Server: 10.32.3.116 
Connection: close 
Date: Wed, 06 Jul 2011 10:39:37 GMT 
Content-Length: 5 

false 
-3

Retirez tout âge et/ou restrictions de pays à partir des paramètres de la page.

1

J'ai supprimé une restriction de pays "par défaut" des paramètres de la page, et les données sont devenues normales via l'API graphique. Il serait bon de savoir pourquoi cela affecte les demandes d'api.