6 Stimmen

IE8 Win7 Facebook-Verbindungsproblem

Update 4/8/09 - Eine neue Woche ist angebrochen, ohne dass ich Fortschritte gemacht habe und ohne dass die Facebook-Foren geantwortet haben. Keine einzige Antwort dort, was ziemlich enttäuschend ist. Ich kann auch nicht herausfinden, wie ich ein Kopfgeld auf diese Frage aussetzen kann, aber ich würde dieses Problem wirklich sehr gerne lösen.


Ich habe mir viele Beiträge angesehen, um zu sehen, ob dies schon einmal gepostet wurde, und es war nicht der Fall. Hier ist die Kurzversion:

Ich gehe das FB-Connect-Beispiel-Tutorial (v1) durch und kann es im IE8 unter Win7 nicht zum Laufen bringen. Es funktioniert wie erwartet in FF3 unter Win7.

Lange Version:

Ich war überrascht, dass die Dinge nicht funktionierten, da ich den Inhalt so gut wie kopiert und eingefügt hatte. Ich habe den Teil mit dem alert()-Javascript-Aufruf übersprungen, also habe ich das eingefügt, um zu sehen, ob der Parser überhaupt dazu kommt. Ich habe den folgenden Code eingefügt:

[my raw html]
Or use, <fb:login-button length="long" onlogin="alert('yo!!!');"></fb:login-button>
[/my raw html]

Die Warnmeldung wird im IE8 nicht angezeigt. Im FF funktioniert sie.

Wenn ich zum Aufruf von update_user_box() zurückkehre, sieht mein HTML so aus:

Or use, <fb:login-button length="long" onlogin="update_user_box();"></fb:login-button>

<script type="text/javascript">
    function update_user_box() {
        var user_box = document.getElementById("user");
        user_box.innerHTML =
            "<span>"
            + "<fb:profile-pic uid='loggedinuser' facebook-logo='true'></fb:profile_pic>"
            + "Welcome, <fb:name uid='loggedinuser' useyou='false'></fb:name>."
            + "You are signed in."
            + "</span>"

        FB.XFBML.Host.parseDomTree();
    }

    FB.init("23e24c73feed7ca0f6afd876575842de", "../../Connect/xd_receiver.htm", { "ifUserConnected": update_user_box });
</script>

Auch dies funktioniert in FF3 einwandfrei. Mein Bild wird angezeigt und alles. Es ärgert mich eigentlich mehr, dass es in FF3 funktioniert hat, als dass es komplett nicht funktioniert.

Hier ist das beobachtete Verhalten im IE8:

  1. Wenn ich auf die FBConnect-Schaltfläche klicke, öffnet sich das Javascript-Fenster und lädt die richtige Anmeldeseite

  2. Der Fokus wechselt zurück zum Hauptfenster (das Fenster mit meiner Anwendung)

  3. Das Hauptfenster des IE8 (das Fenster, in dem ich auf die Schaltfläche "Verbinden" geklickt habe) zeigt jetzt eine Facebook-Anmeldeseite.

  4. Wenn ich meine Anmeldedaten in das FB-Javascript-Fenster eingebe, lädt die Seite ein leeres Dokument URL dieser Seite: http://localhost:55994/Connect/xd_receiver.htm?fb_login&fname=_opener&session=%7B%22session_key%22%3A%223.A4DpHk4nrKHooB7K_Q6EiA__.86400.1238796000-623225%22%2C%22uid%22%3A%22623225%22%2C%22expires%22%3A1238796000%2C%22secret%22%3A%22HtjtJS_xg8dX7TR7lLggew__%22%2C%22sig%22%3A%22ae12c0f98d4567612b70861314d42fbb%22%7D

Quelle dieser Seite anzeigen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
    <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/XdCommReceiver.js" type="text/javascript"></script>
</body>
</html>

5, Wenn ich dieses Fenster schließe und meine Anmeldedaten in das Anwendungsfenster eingebe, wird die Seite mit der Schaltfläche FBConnect neu geladen.

Wie ich schon sagte, erhalte ich das erwartete Verhalten in FF3, aber nicht in IE8. Ich habe sogar den Kompatibilitätsmodus des IE8 ausprobiert, aber auch das hat nicht funktioniert. Hat jemand einen Hinweis darauf, was hier passiert?

Mein HTML-Tag sieht so aus:

Ich weiß also, dass das nicht das Problem ist.

0 Stimmen

Welche Version von Win7? Wenn es Build 7000 ist, dann hatte es eine ziemlich alte Version von IE8 mit ihm, so dass es gut sein kann in IE8 final.

0 Stimmen

Ich verwende Build 7068. Ich habe weder IE7 noch 8 unter Vista ausprobiert. Ich nehme an, ich sollte das auch versuchen, aber ich bin lokal auf meinem Entwicklungsrechner ausgeführt.

0 Stimmen

Zu den Kopfgeldern: stackoverflow.com/faq#bounty

7voto

Darren Newton Punkte 2797

Ich hatte das gleiche Problem. Stellen Sie sicher, dass Sie den HTML-Namensraum auf Ihrer Hauptseite eingerichtet haben:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">

http://forum.developers.facebook.com/viewtopic.php?id=23412

Außerdem habe ich ein Bootstrapping durchgeführt, um einen Null-Fehler zu vermeiden:

FB.Bootstrap.requireFeatures(["Connect"], function() 
{
    FB.init("--api-key--","domain/xd_receiver.htm");
    FB.Connect.ifUserConnected(your_function_here);
});

1voto

Kevin Crump Punkte 11

IE8 und Facebook Connect Einfach.

Auf meiner Facebook-Connect-Website, die ich entwickle, wurden die Facebook-Widgets einfach nicht geladen

Natürlich muss Javascript im IE8 aktiviert sein (dazu gibt es viele weitere Informationen), wofür ich gesorgt habe.

Es geht immer noch nicht.

Dann der obige Beitrag von Darrent Newton....

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">

Das ist der Trick! Danke Darren.

0voto

Eamonn Gahan Punkte 1874

Ich hatte einige Probleme, Facebook Connect mit den neuen Javascript SDK-Authentifizierungsmethoden zum Laufen zu bringen - es funktionierte gut in Chrome und FF, aber nicht im IE8.0

Nach einigem Herumprobieren habe ich entdeckt, dass <html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"> erforderlich war.

Ich musste auch meine Anwendungseinstellungen ändern: Ändern Sie Connect URL in etwas wie: http://XXX.example.com.org:8006/XXXX/ und ändern Sie Base Domain in etwas wie: example.com

Hinweis: Bei meinem Test auf einem lokalen Rechner funktionierte die Einstellung der Basisdomäne auf eine IP-Adresse nicht. Rendering-Methode: iframe

Javascript als Referenz:

<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.sessionChange', function(response) {
    if (response.session) {
      // A user has logged in, and a new cookie has been saved
        window.location.reload();
    } else {
        // The user has logged out, and the cookie has been cleared
    }
  });

</script>

0voto

maxbeaudoin Punkte 6052

Ich habe ein sehr ähnliches Problem. Unter IE7-8 Win7 erhalte ich die Meldung "Die Seite kann nicht angezeigt werden". Das Pop-up ist leer.

Bei Fiddler wird ein sicherer Aufruf von CONNECT (Host) nicht durchgelassen.

Ich verwende die Facebook Javascript SDK API mit API.ui / stream.Publish. Ich habe 2 Anwendungen eingerichtet. Eine für die französische Domain, eine für die englische Domain. Die englische Domäne reagiert korrekt, die französische nicht. Beide Verbindungsurls / Basisdomänen wurden korrekt eingestellt.

Dies funktioniert mit jeder anderen Browser/Os-Kombination.

Ich habe die fb xmlns ausprobiert, ohne Ergebnis.

0voto

used2could Punkte 4958

Ein bisschen spät, aber das hat meine Haut gerettet! Hoffentlich hilft das anderen!

FB Connect zeigt leeres Popup an Anmeldung in IE8, IE9 Lösung:

Benutzerdefinierte Kanal-URL verwenden

1. den Parameter channelUrl in FB.init session hinzufügen.

FB.init({ appId : 'DEINE APP ID', status : true, cookie : true, xfbml : true, channelUrl: "http://yourdomainname/fbtest/channel.html" //Fügen Sie diese Datei in Ihre Website ein.
});

2. der Inhalt der Datei channel.html sollte aus dieser einen Zeile bestehen:

3. testen Sie Ihr FB-Login...Viel Spaß...

参照 http://forum.developers.facebook.net... für das vollständige Forumsthema.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X