Question

Je crée une application facebook avec PHP et face à deux problèmes principaux ..

  1. 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.

  2. 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.

Était-ce utile?

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:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top