1

我创建了一个在必须通过 https 访问的服务器上运行的 facebook 应用程序。否则它将重定向到 https 并且 signed_request 会丢失。

在应用程序设置中,我可以编辑的所有 URL 都使用 https 协议。没有以 http:// 开头的 URL(没有 s)——除了画布页面 url,我无法更改该值(它是http://facebook.com/myappname)。

但是,当我打开一个以不安全模式 (http) 安装我的应用程序的 facebook 页面时,facebook 接缝以从配置的 facebook 页面 URL 中删除该“s”并调用http://myappdomain而不是https://myappdomain.

我的第一个问题:我能做些什么来告诉 Facebook 不要重写我配置的 URL?(或者我在其他地方犯了错误)

我的第二个问题:如果signed_request 丢失,我想我可以加载一个空页面,并在那里放置一个javascript代码 window.top.location = https://facebook.com/somewhere。但是如果没有签名的请求,我不知道这个“某处”。是否可以使用 apaches mod rewrite 将 post 参数作为 get 参数传递?

提供应用程序的 http 版本对我来说不是解决方案(客户要求)。

4

1 回答 1

1

如果signed_request 丢失,我想我可以加载一个空页面并在其中放置一个javascript代码 window.top.location = https://facebook.com/somewhere。但是如果没有签名的请求,我不知道这个“某处”。是否可以使用 apaches mod rewrite 将 post 参数作为 get 参数传递?

不是我现在……但是你为什么不只通过 HTTP 提供那个小脚本呢?您可以访问其中的 signed_request,找出您的 HTTPS 目标 URL,并通过 JavaScript 重定向到那里。

提供应用程序的 http 版本对我来说不是解决方案(客户要求)。

这样,只有重定向本身会通过 HTTP 提供服务——一旦客户端被重定向,就会使用 HTTPS,如果你只展示你的“真实”应用程序,那会满足客户的要求吗?

于 2012-11-14T09:49:11.093 回答