Frage

Ich erstelle eine Facebook-Anwendung mit PHP und mit Blick auf zwei Hauptprobleme ..

  1. Wenn ich auf Genehmigung erlauben klicken, wird die App nimmt mich auf meine eigene Domain (wo die Anwendung gespeichert wird) anstelle von Lade es in einem iFrame.

  2. Manchmal, wenn ich auf „nicht zulassen“, es läßt mich immer noch in und zeigt einen PHP-Fehler, während manchmal (die meiste Zeit), es läßt mich nicht in.

Was könnte das Problem sein? Jede Art und Weise kann ich programmatisch auf die Berechtigungen Seite umleiten? Danke ..

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");
        }
    }

Beachten Sie die Umleitungen ich gemacht waren, um zu versuchen, das Problem zu lösen. Aber keine Ausnahme ausgelöst wird.

War es hilfreich?

Lösung 2

benutzen ich diese einfache Skript Umleitung gelten, wenn die Seite nicht im Innern ist iFrame ...

if(parent == window)
                {
                    window.location = "http://apps.facebook.com/appname/";
                }

Dies könnte nicht eine rechtliche Lösung, aber die Situation für mich gelöst. Jemand, ob den rechtlichen Weg kennt, bitte posten. Danke.

Andere Tipps

Wenn Sie den Login erhalten möchten url Sie verschiedene params auf das, was passieren kann, die Sie benötigen. in Ihrem Fall zu Facebook-Seite gehen zurück url Sie die next param verwenden können.

Dies ist der Code geändert:

$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;
    }
}

Lassen Sie mich wissen, ob es Ihr Problem löst:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top