0

Facebookのiframeページ内のWebページにリンクする方法を探しています

それで

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

次のようなものになります

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

私はここで方法を試しましたhttp://www.codingforums.com/archive/index.php/t-85547.html

    <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
//-->

app_runner4f84331f0576e6f73380702 が iframe の名前または ID であるかどうかはわかりませんが、幅が 810px x 800px の唯一のものでした。

これができるかどうかについてのアイデアは素晴らしいでしょう

4

1 に答える 1

1

Facebook キャンバス アプリの場合、URL は www.facebook.com ではなく、apps.facebook.com にする必要あります

キャンバス アプリの URL に追加されるすべてのクエリ文字列パラメーターは、キャンバスの iframe 内に読み込まれたときにアプリの URL に追加することで、Facebook によってアプリに渡されます。

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

facebook は、アプリ キャンバスの iframe を次の場所に POST します。

www.yourdomain.com/canvas-path?param=値

次に、他の GET パラメータと同様にそのパラメータを取得し、必要なものを取得できます。ただし、そのパラメーターが url の場合は、url でエンコードする必要があります。そうしないと、うまくいかないことがあります。

私が理解できないのは、パラメーターとして渡したい URL で何をしようとしているのかということです。この「app_runner4f84331f0576e6f73380702」とは何ですか?


編集

ああ、それはページ タブです。申し訳ありませんが、その部分を見逃していました。

以前は使用したことがありませんが、Page Tab Tutorialの最後のセクション ( Facebook API との統合) に次のように書かれています。

タブが読み込まれる URL の元のクエリ文字列に app_data パラメータが設定されている場合、アプリは、signed_request の一部として app_data という文字列パラメータも受け取ります。上記の [今すぐ購入] リンクの場合、「http://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here」のようになります。リンクの生成を制御する場合は、それを使用してレンダリングするコンテンツをカスタマイズできます。

私が理解していることから、これはまさにデータを取得するために必要なものです。

ただし、親ウィンドウにアクセスできないため、投稿した方法で iframe の URL を変更することはできません (ページは Facebook とは異なるドメインにあり、ブラウザーはクロスのためにそれを防ぎます)。 -ドメイン ポリシー)。

これまでにできることは、次のとおりです。

document.location.href = URL;

あなたはあなた自身のページにいます。それがiframeにあるかどうかは問題ではありません。

問題は、そのすべてが必要というわけではありません。サーバー側で facebook から (クエリ文字列から) 渡されるパラメーターが存在する場合はそれに注意し、それに従ってページをレンダリングすることだけです。ページを別の URL にリダイレクトするページをレンダリングする理由はありません。ユーザーが何を望んでいるかが既にわかっている場合は、ユーザーにサーバーへの冗長な往復を無駄にさせているだけです。

于 2012-04-10T21:18:23.957 に答える