Facebook Connect søknad inne iframe ikke fungerer i IE7

stemmer
5

Jeg bygger et Facebook Connect program som kjører inne i en Google gadget. Å være en gadget betyr at programmet kjører inne i en iframe. Inne i programmet, er det en form som gjør at registrerte brukere å skrive kommentarer. Innleveringen er gjort ved hjelp av AJAX, men jeg får de samme resultatene med en normal form. Problemet er at jeg trenger å få brukerens facebook id. I Firefox, det fungerer fint, men på Internet Explorer 7, får jeg følgende feilmelding:

 'A session key is required for calling this method'

Jeg tror at dette er på grunn av måten IE håndterer tredjeparts informasjonskapsler, fordi hvis jeg går til Internet options / Privacy / Advanced, og sjekk Styr automatisk håndtering av informasjonskapsler og akseptere alle cookies, det fungerer fint. Jeg kan ikke passere Facebook id fra javascript, fordi noen kunne tukle det.

EDIT: Hvis jeg åpner innholdet i iframe direkte, app fungerer fint. Problemet er virkelig grunn til det IFRAME og IE sikkerhetsmodell.

Hva gjør jeg noe galt? Hvordan kan jeg løse dette problemet?

Publisert på 16/02/2009 klokken 18:10
kilden bruker
På andre språk...                            


4 svar

stemmer
1

Jeg fant en work-around som fungerer, selv om det er litt stygg: når brukeren klikker på 'Logg inn' -knappen, åpnes det en popup som kommer fra min egen side og som inneholder Facebook Connect innloggingsknappen. Når brukeren logger inn, jeg lukker popup og oppdater iframe.

Dette er virkelig stygg fordi det åpner to popups, men minst det fungerer. Jeg vil oppdage om cookies er aktivert ved hjelp av javascript, og hvis de er aktivert, vil jeg hoppe over den første popup.

Jeg er fortsatt åpen for bedre løsninger ...


Edit : Facebook bruker nå en "fake" popup inni min popup, i stedet for å åpne et annet vindu. Nå har jeg bare en popup som er ok for meg.

Svarte 16/02/2009 kl. 20:17
kilden bruker

stemmer
7

Har du prøvd å legge en P3P policy?

Hvis responsen sette cookie har en kompakt politikk, vil IE bruke dette til å avgjøre om ikke å tillate tredje part cookie ..

Svarte 17/02/2009 kl. 03:01
kilden bruker

stemmer
3

Jeg løste det samme problemet ved å endre hvordan jeg sjekke om brukeren var logget inn på PHP side etter en FB koble innlogging.

Så, logg de å FB Koble med IE7. Neste og påfølgende siden laster der jeg trenger å verifisere at de faktisk logget på Facebook Jeg brukte følgende kode (merk at $ facebook-> require_login () og andre funksjoner ikke fungerte - de returneres null bare i 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();

The $ fb_user_id skal nå ha en gyldig Facebook-bruker-ID.

Når det gjelder personvern og Facebook Connect + IE 7:

Selv om dette ikke fungerte for meg ser det ut til å fungere for andre. i htaccess:

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

eller i PHP-filer:

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

referanse: 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\"");
}
Svarte 30/06/2009 kl. 18:20
kilden bruker

stemmer
0

kan det være lurt å se denne tråden også, som er opprettet under facebook utviklingsplattform

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

Svarte 22/03/2010 kl. 11:38
kilden bruker

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