2009-10-23 6 views
3

des experts FB ici? Après avoir lu environ 15 fil sur les forums FB Je ne sais pas où aller ensuite = (Les liens de l'application Facebook iFrame envoient en dehors de

Nous avons une application iFrame FB: http://apps.facebook.com/myapp

tous les liens utilisés dans l'application sont comme: href = "http: // www.mysite.com/index.php?parm=value ... »

maintenant lorsque je clique sur un lien, je suis sur facebook et atterrir sur notre serveur.

Je ne sais pas vraiment comment pour résoudre ceci! en utilisant des liens avec le serveur de facebook ins't une option

pour quelques indices!

+0

ba-bump! bosse bosse – mcintyre321

Répondre

0

Voulez-vous dire que cliquer sur un lien dans l'iframe va sur votre site intead? Si vous le faites, vous pouvez essayer de définir l'attribut "target" de l'ancre html sur "_self", ce qui devrait ouvrir le lien dans l'iFrame.

2

Ceci est parce que Facebook perd toutes les variables d'authentification et est incapable de déterminer que les requêtes simultanées appartiennent à la même session, qui se traduit par « sortir » de l'iframe et finissant sur vos propres pages de serveur au lieu de dans Facebook.

Chaque fois qu'une page est diffusée via Facebook, la requête reçue sur votre serveur comprend un certain nombre de variables GET envoyées par Facebook, ces variables sont collectivement appelées "Signature d'authentification Facebook" qui prouve à votre serveur que la requête est valide et provient de Facebook; De même, lorsque votre serveur envoie la réponse, l'inclusion de ces variables prouve à Facebook (par une combinaison de session_key, api_key et sig digest) que votre serveur est l'application qu'il prétend être. Afin de maintenir la session dans votre application iframe sans éclater vers votre serveur, vous devez inclure ces paramètres dans la chaîne de requête de chaque lien. Voici une fonction simple qui produira la chaîne de requête pour vous, il vous suffit donc d'ajouter le résultat de cette fonction à chaque URL de lien dans votre application:

function fb_sig_urlQueryString() { 
    $query = ''; 
    foreach ($_GET as $k => $v) { 
    if (strpos($k, 'fb_sig') === 0) { 
     if ($i++ > 1) $query .= '&'; 
     $query .= $k.'='.$v; 
    } 
    } 
    return $query; 
} 
Questions connexes