2010-04-26 15 views
8

Ich versuche, mit dem neuen Facebook-Authentifizierungssystem zu experimentieren, und ich kann den Login nicht funktionieren.Facebook Connect 'nächster' Fehler

Ich erhalte die folgende Fehlermeldung:


API Fehlercode: 100

API Fehler Beschreibung: ungültige Parameter

Fehlermeldung: nächste nicht von der Anwendung gehört.


Die URL, die auf Facebook gesendet wird, ist:

http://www.facebook.com/connect/uiserver.php?app_id=444444444444444&next=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26cb%3Df357eceb0361a8a%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23b800f8a78%26result%3DxxRESULTTOKENxx&display=popup&channel=http%3A%2F%2Fwww.mysite.com%2Ffbtester.php&cancel=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26cb%3Df6095a98598be8%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23b800f8a78%26result%3DxxRESULTTOKENxx&locale=en_US&return_session=1&session_version=3&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request

Beachten Sie, dass die 'Next' Variable in der URL ist:

next = http% 3A% 2F% 2Fstatic.ak.fbcdn.net% 2Fconnect% 2Fxd_proxy.php% 23% 3F% 3D% 26cb% 3Df357eceb0361a8a% 26origin% 3Dhttp% 253A% 252F% 252Fwww.mysite.com% 252Ff38fea4f9ea573% 26relation% 3Dopener% 26transport% 3Dpostmessage% 26frame% 3Df23b800f8a78% 26Ergebnis% 3DxxRESULTTOKENxx


Irgendwelche Ideen, was könnte schief gehen? Alles, was ich habe, ist zu kopieren getan und den Facebook-Login Demo-Code von Facebook Webseite einfügen:


<?php 
define('FACEBOOK_APP_ID', 'your application id'); 
define('FACEBOOK_SECRET', 'your application secret'); 

function get_facebook_cookie($app_id, $application_secret) { 
    $args = array(); 
    parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); 
    ksort($args); 
    $payload = ''; 
    foreach ($args as $key => $value) { 
    if ($key != 'sig') { 
     $payload .= $key . '=' . $value; 
    } 
    } 
    if (md5($payload . $application_secret) != $args['sig']) { 
    return null; 
    } 
    return $args; 
} 

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET); 

?> 


<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <body> 
    <?php if ($cookie) { ?> 
     Your user ID is <?= $cookie['uid'] ?> 
    <?php } else { ?> 
     <fb:login-button></fb:login-button> 
    <?php } ?> 

    <div id="fb-root"></div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <script> 
     FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true, 
       cookie: true, xfbml: true}); 
     FB.Event.subscribe('auth.login', function(response) { 
     window.location.reload(); 
     }); 
    </script> 
    </body> 
</html> 

Danke für die Hilfe!

+0

Bitte verwenden Sie die richtige Formatierung in Ihrer Frage, das ist völlig unlesbar. – Rabbott

+0

Sorry, dass ... Ich habe einige Probleme bekommen, es richtig zu formatieren. – Mark

Antwort

1

Ich weiß nicht viel über die Facebook-API, aber ich weiß, dass Sie tatsächlich den Text your application id und your application secret durch Ihre Anwendungs-ID und Ihr Anwendungsgeheimnis ersetzen müssen. :)

+1

Hallo Nick, Danke für die Antwort. Das ist nicht das Problem - das habe ich schon gemacht. Ich dachte einfach nicht, dass es angemessen wäre, meine Anwendungs-ID und das Anwendungsgeheimnis in diesem Code anzuzeigen. Ich schätze die Hilfe aber! – Mark

5

Ich bekam den gleichen Fehler, aber ich verwende Rails und das Problem war, dass die Connect URL nicht aktualisiert wurde. Meine lokale Anwendung läuft auf Port 3000, und die Verbindungs-URL zeigte auf Port 80.

Sehen Sie, ob das Ändern für Sie funktioniert.

  1. Goto http://www.facebook.com/developers
  2. Bearbeiten Sie die Anwendung, die Sie auf
  3. arbeiten Klicken Sie auf die Connect Registerkarte auf der linken Seite
  4. Überprüfen Sie, ob Connect URL Setup richtig ist
+0

Für meine, hatte ich das "www" in facebook, aber mein Host automatisch weitergeleitet an www ... so die URLs waren unterschiedlich –

0

wenn connect URL korrekt ist, und Es funktioniert immer noch nicht, gehen Sie zu Ihrer App-Einstellung, geben Sie eine korrekte Basis-Domain an. Zum Testen können Sie localhost verwenden. Wenn immer noch kein Glück, gehen Sie zur Migration Einstellung, deaktivieren Sie "neue Daten Erlaubnis"

+0

Adelein Rodriguez, in Ihrer Basis-Domain, nur ddailygirl.com angeben – JiJ

1

Ich hatte das gleiche Problem und konnte es nicht herausfinden. Es war die Basisdomäne, wie Ji sagte. Ich würde abstimmen, aber ich bin gerade beigetreten. Anforderungen in FB Einstellungsseiten sind so schlecht ... Ich habe localhost benutzt.

Ich verwendete auch eine Querystring von? Nichts = 1 zum Testen b/c der neuen Anforderung, wo es heißt: connect url muss auf ein Verzeichnis (d. H., Ende mit einem "/") oder einer dynamischen Seite (dh ein "?" irgendwo haben.

Daher können Sie nicht einfach default.aspx setzen. Sie müssen mit einem Schrägstrich enden oder haben eine? which Voraussetzung ist eine seltsame für connect

Dank Ji !!!

1

ich in der Lage war, diese mit diesen Einstellungen gelöst zu bekommen.

Base-Domain: Domain .com (dies auch adelein der lösen sollte Probleme mit mehreren Subdomains)

Verbindungs-URL: muss eine gültige URL http: // oder https: // sein, die am Ende mit einem Schrägstrich oder einem "?" Irgendwo in der URL gekennzeichnet ist, was eine Abfragezeichenfolge bedeutet. Im Grunde möchte Facebook nicht, dass Sie Leute auf statische Seiten schicken, die die Autorisierung, die sie eingerichtet haben, nicht richtig verarbeiten, denke ich.

+0

wo sehen Sie diese Einstellungen? – fastmultiplication

+0

http://www.facebook.com/developers/apps.php Klicken Sie auf Ihre Anwendung, dann "Einstellungen bearbeiten" Klicken Sie auf "Website" – jenming

+0

ABER, es scheint, dass sie ihre Einstellungen Seite geändert haben! Klicken Sie auf "Website" - die Domain hat. Aber Connect URL scheint verschwunden zu sein .... – jenming