2012-04-10 17 views
0

Im Suche nach einem Weg zu einer Webseite verlinkt werden innerhalb eines Facebook iframe SeiteLink zu einer Seite innerhalb Facebook iframe

so

http://www.facebook.com/designmystyle/app_244351832329915 

wäre so etwas wie

http://www.facebook.com/designmystyle/app_244351832329915?http://www.lickmystyle.com/contact/ 

Ich habe versuchte die Methode hier http://www.codingforums.com/archive/index.php/t-85547.html mit

<script type="text/javascript"> 
    <!-- 

    function loadIframe(){ 
    if (location.search.length > 0){ 
    url = unescape(location.search.substring(1)) 

    window.frames["app_runner4f84331f0576e6f73380702"].location=url 
    } 
    } 

    onload=loadI 

frame 
//--> 
Im 210

nicht sicher, ob app_runner4f84331f0576e6f73380702 ist der Name oder die ID des iframe, aber es war der einzige, den ich finden konnte, die von 800px

Irgendwelche Ideen auf eine Breite von 810px hatte, wenn dies wäre toll getan werden könnte

Antwort

1

Wenn es eine Facebook-Canvas-App ist, dann sollte die URL dafür apps.facebook.com und nicht www.facebook.com sein.

Alle Querystring-Parameter, die Ihrer Canvas-App-URL hinzugefügt werden, werden von Facebook an Ihre App weitergeleitet, indem sie zur URL Ihrer App hinzugefügt werden, wenn sie in den Canvas-iFrame geladen werden. Wenn Sie den Benutzer an folgende Adresse verweisen:

apps.facebook.com/app-name?param=value

Facebook wird die App Leinwand iframe POST:

www.yourdomain.com/canvas-path?param = v alue

Dann können Sie diese Parameter wie jeder andere GET-Parameter und was man will. Eine Sache jedoch, wenn dieser Parameter eine URL ist, dann sollte es URL-codiert sein, andere weise Dinge werden schief gehen.

Was ich nicht verstehe ist, was Sie mit der URL zu tun, die Sie als Parameter übergeben möchten, was ist das "app_runner4f84331f0576e6f73380702"?


bearbeiten

Oh, es ist eine Seite Tab, sorry, ich, dass ein Teil verpasst.

I'v es nie zuvor, aber es sagt, im letzten Abschnitt (mit Facebook-APIs Integration) der Page Tab Tutorial:

Ihre App auch einen String-Parameter erhalten als Teil namens App_Data of signed_request, wenn ein app_data-Parameter in der ursprünglichen Abfragezeichenfolge in der URL festgelegt wurde, auf der Ihre Registerkarte geladen ist. Für den Shop Link oben, der wie folgt aussehen könnte: "http://www.facebook.com/YourPage?v=app_1234567890 & app_data = any_string_here". Sie können den Inhalt anpassen, den Sie rendern, wenn Sie die Generierung des Links steuern.

Von dem, was ich verstehe, ist dies genau das, was Sie brauchen, um die Daten zu erhalten.

Allerdings können Sie die URL des iFrames nicht so ändern, wie Sie gepostet haben, da Sie keinen Zugriff auf das übergeordnete Fenster haben (Ihre Seite befindet sich auf einer anderen Domain als Facebook und der Browser verhindert dies aufgrund der domänenübergreifenden Richtlinie).

Was können Sie tun, wie immer einfach ist:

document.location.href = URL; 

Sie in Ihrer eigenen Seite sind, spielt keine Rolle, dass es in einem Iframe befindet.

Die Sache ist, dass Sie nicht all das brauchen, nur auf der Serverseite des Parameters, der Ihnen von facebook (aus der Abfragezeichenfolge) übergeben wird, wenn solche existiert, und rendern die Seite nach Das. Es gibt keinen Grund, eine Seite zu rendern, die dann die Seite auf eine andere URL umleitet. Wenn Sie bereits wissen, was der Benutzer möchte, veranlassen Sie den Benutzer einfach dazu, einen überflüssigen Rundweg zu Ihrem Server zu machen.

+0

Nun ich denke, ich habe es vielleicht etwas verwirrt, ich habe eine Facebook-Seite mit einer Registerkarte http://www.facebook.com/designmystyle/app_244351832329915 Ich möchte in der Lage sein, andere Seiten von der gleichen Registerkarte aufzurufen Dh also die Kontaktseite ohne einen neuen Tab erstellen zu müssen. – Matu

+0

Ich glaube, ich verstehe, meine Antwort bearbeitet. –

Verwandte Themen