Facebook Connect εφαρμογή στο εσωτερικό iframe δεν λειτουργεί σε IE7

ψήφοι
5

Είμαι οικοδόμηση μιας εφαρμογής Facebook Connect που τρέχει μέσα σε ένα gadget Google. Όντας ένα gadget που σημαίνει ότι η εφαρμογή τρέχει μέσα σε ένα iframe. Μέσα από την εφαρμογή, υπάρχει μια μορφή που επιτρέπει στους εγγεγραμμένους χρήστες να δημοσιεύουν σχόλια. Η υποβολή γίνεται με τη χρήση AJAX, αλλά έχω τα ίδια αποτελέσματα με μια κανονική μορφή. Το πρόβλημα είναι ότι πρέπει να πάρετε facebook id του χρήστη. Στο Firefox, δουλεύει μια χαρά, αλλά για τον Internet Explorer 7, παίρνω το ακόλουθο μήνυμα λάθους:

 'A session key is required for calling this method'

Πιστεύω ότι αυτό οφείλεται στον τρόπο με τον IE διαχειρίζεται τα cookies τρίτων, γιατί αν πάω με τις επιλογές Internet / Privacy / Για προχωρημένους, και να ελέγξετε Παράκαμψη αυτόματου χειρισμού cookies και αποδέχεται όλα τα cookies, δουλεύει μια χαρά. Δεν μπορώ να περάσει την ταυτότητα του Facebook από την javascript, γιατί ο καθένας θα μπορούσε να το πειράξετε.

EDIT: Αν ανοίξω το περιεχόμενο του iframe άμεσα, η εφαρμογή δουλεύει μια χαρά. Το πρόβλημα είναι πραγματικά οφείλεται στο IFRAME και το μοντέλο ασφάλειας του IE.

Τι κάνω κάτι λάθος; Πώς μπορώ να επιλύσετε αυτό το ζήτημα;

Δημοσιεύθηκε 16/02/2009 στις 19:10
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
1

Βρήκα ένα έργο-γύρω που λειτουργεί, αν και είναι λίγο άσχημο: όταν ο χρήστης κάνει κλικ στο κουμπί «Είσοδος», ανοίγει ένα αναδυόμενο παράθυρο που προέρχεται από τη δική μου ιστοσελίδα και το οποίο περιέχει το κουμπί σύνδεσης Facebook Connect. Αφού ο χρήστης συνδέεται στο, κλείνω το αναδυόμενο παράθυρο και να φορτώσετε εκ νέου το iframe.

Αυτό είναι πραγματικά άσχημο, διότι Ανοίγει δύο αναδυόμενα παράθυρα, αλλά τουλάχιστον λειτουργεί. Θα εξακριβώσουμε αν είναι ενεργοποιημένα τα cookies χρησιμοποιώντας javascript και αν είναι ενεργοποιημένη, θα παραλείψετε το πρώτο αναδυόμενο παράθυρο.

Είμαι ακόμα ανοιχτή σε καλύτερες λύσεις ...


Επεξεργασία : Facebook χρησιμοποιεί τώρα ένα «ψεύτικο» αναδυόμενη μέσα αναδυόμενο μου, αντί να ανοίγει ένα άλλο παράθυρο. Τώρα έχω μόνο ένα αναδυόμενο παράθυρο το οποίο είναι εντάξει για μένα.

Απαντήθηκε 16/02/2009 στις 21:17
πηγή χρήστη

ψήφοι
7

Έχετε δοκιμάσει προσθέτοντας μια πολιτική P3P;

Εάν η απάντηση ρύθμιση του cookie έχει σταθερή πολιτική, IE θα χρησιμοποιήσουν για να προσδιορίσουν κατά πόσον πρέπει ή όχι να επιτραπεί το 3ο μέρος μπισκότο ..

Απαντήθηκε 17/02/2009 στις 04:01
πηγή χρήστη

ψήφοι
3

Έλυσα το ίδιο πρόβλημα με την τροποποίηση πώς μπορώ να ελέγξω αν ο χρήστης έχει εισέλθει στη σελίδα PHP μετά από μια FB συνδέσετε την είσοδο.

Έτσι, συνδεθείτε στο FB Connect with IE7. Στη συνέχεια και τα επόμενα φορτία σελίδα όπου πρέπει να ελέγξει ότι πράγματι είστε συνδεδεμένοι στο FaceBook χρησιμοποίησα τον ακόλουθο κώδικα (σημειώστε ότι $ facebook-> require_login () και άλλες λειτουργίες δεν λειτούργησε - επέστρεψαν null μόνο στον IE 7):

// Validate from Facebook that session is valid and user is logged in. require_once 'facebook/facebook.php'; $facebook = new Facebook(YourAppsAPIKeyPublic, YourAppsAPIKeySecret); $facebook->api_client->session_key = $this->userAPISessionKey; $fb_user_id = $facebook->api_client->users_getLoggedInUser();

Η fb_user_id $ θα πρέπει να έχουν πλέον ένα έγκυρο όνομα χρήστη FaceBook.

Όσον αφορά την πολιτική προστασίας της ιδιωτικής ζωής και το facebook συνδεθείτε + IE 7:

Αν και αυτό δεν λειτούργησε για μένα φαίνεται να λειτουργεί για τους άλλους. στο htaccess:

Header append P3P "CP=\"HONK\""

ή σε αρχεία PHP:

header('P3P: CP="CAO PSA OUR"'); ή header('P3P: CP="HONK"');

αναφοράς: http://forum.developers.facebook.com/viewtopic.php?id=28636

ASP.NET:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
}
Απαντήθηκε 30/06/2009 στις 19:20
πηγή χρήστη

ψήφοι
0

μπορεί να θέλετε να δείτε και αυτό το νήμα, το οποίο δημιουργήθηκε στο πλαίσιο της πλατφόρμας για την ανάπτυξη facebook

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

Απαντήθηκε 22/03/2010 στις 12:38
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more