【问题标题】:Facebook iFrame app links send outsideFacebook iFrame 应用程序链接发送到外部
【发布时间】:2010-12-09 10:44:18
【问题描述】:

这里有 FB 专家吗?在 FB 论坛上阅读了大约 15 个帖子后,我不知道下一步该去哪里 =(

我们有一个 iFrame FB 应用程序:http://apps.facebook.com/myapp

应用中使用的所有链接都类似于:href="http://www.mysite.com/index.php?parm=value ..."

现在,当我点击任何链接时,我就离开了 facebook 并登陆了我们的服务器。

真的不知道如何解决这个问题!使用带有 facebook 服务器的链接是不可行的。

谢谢大家的提示!

【问题讨论】:

    标签: facebook iframe hyperlink


    【解决方案1】:

    您的意思是点击 iframe 中的链接会转到您的网站吗?如果你这样做,你可以尝试将 html 锚的“目标”属性设置为“_self”,这应该会在 iFrame 中打开链接。

    【讨论】:

      【解决方案2】:

      我遇到了这个问题。在将初始 IFrame 中的所有 FB 查询字符串参数附加到我的链接中的每个 url 后,它们开始在右侧窗口中打开。

      这里有一个例子http://www.keywordintellect.com/facebook-development/facebook-iframe-authentication-across-pages-ajax-requests/

      【讨论】:

        【解决方案3】:

        这是因为 Facebook 丢失了所有身份验证变量,并且无法确定并发请求属于同一会话,这导致 iframe “中断”并最终出现在您自己的服务器页面上,而不是在 Facebook 内.

        任何时候通过 Facebook 提供页面,在您的服务器收到的请求将包含 Facebook 发送的许多 GET 变量,这些变量统称为“Facebook 身份验证签名”,它向您的服务器证明请求实际上是有效且源自 Facebook;同样,当您的服务器发送响应时,包含这些变量会向 Facebook 证明(通过 session_key、api_key 和 sig 摘要的组合)您的服务器是它声称的应用程序。

        为了在您的 iframe 应用程序中保持会话而不中断到您的服务器,您必须在每个链接的查询字符串中包含这些参数。这是一个为您生成查询字符串的简单函数,因此您只需将该函数的结果附加到应用程序中的每个链接 URL:

        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;
        }
        

        【讨论】:

          猜你喜欢
          • 2012-03-14
          • 2011-06-07
          • 1970-01-01
          • 2011-12-19
          • 2018-05-18
          • 1970-01-01
          • 2012-04-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多