facebook problème: l'application va au domaine d'origine
-
25-09-2019 - |
Question
Je crée une application facebook avec PHP et face à deux problèmes principaux ..
-
Lorsque je clique sur l'autorisation permet, l'application me prend à mon propre domaine (où l'application est stocké) au lieu de le charger dans un iFrame.
-
Parfois, quand je clique sur « Ne pas laisser », il me laisse encore et affiche une erreur de PHP, alors que parfois (la plupart du temps), il ne me laisse pas.
Quel pourrait être le problème? De toute façon je peux rediriger programatically à la page des autorisations? Merci ..
if(empty ($this->session))
{
try
{
$login_url = $this->facebook->getLoginUrl();
header("Location: ".$login_url);
}
catch(Exception $e)
{
header("Location: http://www.facebook.com");
}
}
else
{
try
{
$this->uid = $this->facebook->getUser();
}
catch(Exception $e)
{
header("Location: http://www.facebook.com");
}
}
noter les réoriente que j'ai fait était d'essayer de résoudre le problème. Mais aucune exception est levée.
La solution 2
J'ai utilisé ce script simple à appliquer redirect si la page est pas à l'intérieur iFrame ...
if(parent == window)
{
window.location = "http://apps.facebook.com/appname/";
}
Cela pourrait ne pas être une solution juridique, mais résolu la situation pour moi. Tout le monde se connaît la voie légale, s'il vous plaît poste. Merci.
Autres conseils
Si vous voulez obtenir l'URL de connexion, vous pouvez passer différents params en fonction de ce dont vous avez besoin. dans votre cas, pour revenir à la page Facebook URL que vous pouvez utiliser le next
param.
Ceci est votre code modifié:
$login_url = $this->facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'next' => YOUR_CANVAS_PAGE_URL
)
);
if(empty ($this->session))
{
echo "<script type='text/javascript'>top.location.href='$loginUrl';</script>";
exit;
}
else
{
try
{
$this->uid = $this->facebook->getUser();
}
catch(Exception $e)
{
echo "<script type='text/javascript'>top.location.href='$loginUrl';</script>";
exit;
}
}
Faites-moi savoir si cela résout votre problème:)