Facebook画布应用程序HTTPS和HTTP

5
我已经创建了两个Facebook画布应用程序。我在人们访问这些应用程序时遇到了问题。在应用程序设置中,您必须输入:
画布URL 安全画布URL
安全画布URL不接受HTTP链接,而只接受HTTPS链接。当我的一些用户访问我的应用程序链接,如http://apps.facebook.com/my_app时,Facebook会自动将他们重定向到https://...。
画布应用程序内容是从我的服务器加载的,该服务器仅通过HTTP访问。被重定向到https://apps.facebook.com/my_app的用户因为Facebook画布想通过HTTPS加载内容来自我的服务器,所以无法加载我的应用程序。如何解决这个问题,而不启用我的服务器上的SSL?
并不是所有的用户都被重定向到https://apps.fa...?这是如何处理的?
4个回答

8
我有一个有趣的解决方案,可以帮助解决这个问题。
您可以创建一个可通过HTTPS访问的HTML文件,该文件只需重定向到您的网页即可。例如,您可以使用Dropbox。由于Facebook在iframe中加载您的安全画布URL页面,因此您的代码需要重定向顶部页面。像这样:
<html>
  <head>
    <script>
    function onLoad() {
      window.top.location.href="<your website>";
    }
    </script>
  </head>
  <body onload="onLoad()">
    <p>Please wait while you are being redirected to <your website name></p>
  </body>
</html>

请将此链接作为安全画布URL提供。我在我的博客中详细介绍了这个问题 - http://blog.almabase.com/post/84579042935/interesting-hack-for-facebook-secure-canvas-url


这个答案应该被接受,因为它回答了问题。 - Paolo Stefan
这个方法会将你重定向到网站,而不是在iframe中加载网站,这也是canvas应用程序的特点。 - JJJ
1
这对我来说运作正常。要使用DropBox的URL,请注意您必须将DropBox提供给您的链接从https://www.dropbox.com/s/...更改为http://dl.dropboxusercontent.com/s/...。另外,在您的FaceBook应用程序配置页面中输入dropbox URL时,请在URL末尾添加一个问号,以使其被接受。 - Aidan

7

基本上,你必须提供https支持。目前,你仍然可以将“Secure Canvas URL”字段留空以避免这样做,但从10月1日开始将需要此项支持。


1
看起来我得投资购买SSL证书了。 - Primoz Rome
2
有些供应商提供SSL代理服务。您可以指定一个URL,如http://www.sslproxy.whatever/yourapp/,它只是加载/转发您的普通内容。当然,使用这种服务并不会将您的应用程序放在“最受信任”的类别中,浏览器可能会出现警告。 - chwk

2

如果Facebook用户在其账户设置中明确表示希望使用HTTPS,则会被重定向到HTTPS。根据Facebook的官方公告,在10月1日之前,你的应用程序必须支持HTTPS。具体公告请见: https://developers.facebook.com/blog/post/497


1

如果您的服务器没有启用SSL,您可以尝试使用social-server.com。但是,这只是一个快速解决方法。当用户使用https时,他们的浏览器可能会收到不良的安全消息。

如果您仍然想开发Facebook应用程序,最好的解决方案是购买SSL证书。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接