2013-09-30 9 views
6

Ich halte die folgende Fehlermeldung erhaltenURLs nicht erlaubt: Facebook PHP anmelden

Gegeben URL nicht von der Anwendungskonfiguration .: Ein oder mehrere der angegebenen URLs ist nicht erlaubt durch die Einstellungen der App erlaubt ist. Er muss mit der URL der Website oder der Canvas-URL übereinstimmen, oder die Domain muss eine Subdomain einer der App-Domains sein.

Wenn ich versuche, einen Benutzer mit meinem PHP-Code-Snippet (siehe unten) einzuloggen. Meine Facebook-Einstellungen sind wie folgt:

App Domains: myappname-mynamespace.rhcloud.com www.myappname-mynamespace.rhcloud.com 

Site URL: http://myappname-mynamespace.rhcloud.com/ 

Canvas Page: http://apps.facebook.com/myappname 

Canvas URL: http://myappname-mynamespace.rhcloud.com/ 

Secure Canvas URL: https://myappname-mynamespace.rhcloud.com/ 

I here ähnliche Fragen gelesen habe, here, here, here und here und sie alle die gleiche Sache zu sagen scheinen: meine Site URL (Website mit Facebook Login) nicht korrekt ist .

Aber meine Openshift URL ist wie folgt

http://myappname-mynamespace.rhcloud.com 

so ist das, was ich in Facebook-Site-URL-Feld setzen. Ich habe den folgenden PHP-Code (index.php) in der Wurzel meiner Openshift Gang:

<?php 
    require 'php-sdk/facebook.php'; 
    $facebook = new Facebook(array(
     'appId' => 'xxxx', 
     'secret' => 'xxxx' 
    )); 
?> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
    <title>Facebook PHP</title> 
</head> 
<body> 
<h1>Hello World!</h1> 
<?php 
    // get user from facebook object 
    $user = $facebook->getUser(); 

    if ($user): // check for existing user id 
     echo '<p>User ID: ', $user, '</p>'; 
    else: // user doesn't exist 
     $loginUrl = $facebook->getLoginUrl(array(
      'display' => 'popup', 
      'redirect_uri' => 'http://apps.facebook.com/myappname' 
     )); 
     echo '<p><a href="', $loginUrl, '" target="_top">login</a></p>'; 
    endif; 
?> 
</body> 
</html> 

Was mache ich falsch?

Wenn ich die URL meiner Facebook-App (http://apps.facebook.com/myappname), Hello World! eingeben und mein Login-Link oben auf dem iframe meiner Facebook-App angezeigt wird. Wenn ich jedoch auf den Login-Link klicke, erhalte ich den oben genannten Fehler. Jede Hilfe wird sehr geschätzt!

EDIT

Ich trat in die folgenden URLs in meinem Browser und Hello World und der Login-Link wurden beide angezeigt.

http://myappname-mydomainname.rhcloud.com/ 
https://myappname-mydomainname.rhcloud.com/ 
+1

Alles sieht gut aus. Aber nur ein Schuss in die Dunkelheit: Wenn ich Ihre Konfiguration mit meiner vergleichen, würde ich sagen, dass Sie am Ende von "http: // myappname-mynamespace.rhcloud.com" wie für die Site-URL einen Schrägstrich hinzufügen müssen. –

+0

+1 Vielen Dank für Ihre Antwort @ StéphaneBruckert Ich habe meine Site-URL überprüft und habe einen Schrägstrich 'http: // fbtest-projectkohana.rhcloud.com /'. Ich werde meine Frage korrigieren. Ich habe das '/' nachdem ich diese Frage geschrieben habe, aber es funktioniert immer noch nicht. Dies ist die zweite Test-App, die ich geschrieben habe und die diesen Fehler verursacht hat. Bezieht sich dieses Problem auf meine Verwendung von Openshift? Openshift verwendet freigegebene SSL-Zertifikate für kostenlose Konten wie meine. – Anthony

+1

Einige Zeit passiert, dass was auch immer Sie Änderungen in den FB-Einstellungen vornehmen, sich nach einigen Stunden auswirken wird. Überprüfe dies, sobald du Änderungen vorgenommen hast. – Chandresh

Antwort

2

Vor einiger Zeit habe ich aus irgendeinem Grund an Facebooks API gebastelt, ich habe immer den gleichen Fehler bekommen. Stellt sich heraus, einige URLs mit http sollten https sein, nicht, dass Facebook einen Punkt der richtigen Anweisungen verlassen. Ich würde vorschlagen, Site URL: http://myappname-mynamespace.rhcloud.com zu Site URL: https://myappname-mynamespace.rhcloud.com zu ändern. Wenn das nicht hilft, würde ich vorschlagen, die anderen URLs anzusehen und sie zu ändern. Viel Glück

+0

+1 Vielen Dank für Ihre Antwort. Ich änderte meine Site-URL (in der FB-Konfiguration) in "https: // fbtest-projectkohana.rhcloud.com /", speicherte sie und regenerierte sie, aber ich bekam denselben Fehler. Jedoch in der URL meines Browsers, bemerkte ich, dass die Umleitung uri hatte http, nicht https '... redirect_uri = http% 3A% 2F% 2F ...'. Ich habe das oben erwähnte Skript geändert, um stattdessen https zu verwenden, und git hat es erfolgreich zum OpenShift Server gepuffert und jetzt sehe ich '... redirect_uri = https% 3A% 2F% 2F ...' aber ich bekomme immer noch dasselbe Error. Wird dieser Fehler durch das geteilte SSL-Zertifikat meines kostenlosen OpenShift-Accounts/meiner App verursacht? – Anthony