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.
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
Ich glaube, ich verstehe, meine Antwort bearbeitet. –