【问题标题】:How to test a Facebook application on Google App Engine locally (code 191 error)?如何在 Google App Engine 上本地测试 Facebook 应用程序(代码 191 错误)?
【发布时间】:2011-09-25 18:14:20
【问题描述】:

我想在本地测试和开发,同时让应用程序上线,我不想使用两个单独的应用程序 ID,因为这意味着我每次部署新版本时都必须更改代码,然后再更改它返回。

我知道我可以更改主机文件,以便 localdev.{{my application URL}} 引用 localhost 并且 URL 将有效,因此我不会获得 191 代码,但 Google App Engine 启动器强制我使用端口 8080 , 这不能在主机文件中定义。如果我尝试输入localdev.{{my application URL}}:8080,我会再次收到 191 错误代码。

有什么方法可以在 Google App Engine 启动器中使用端口 80?

或者有其他解决方案吗?

更新:

  1. 通过使用 Google App Engine 目录中的 Python 文件而不是 Google App Engine 启动器 GUI,我设法在端口 80 上本地运行。但是,Facebook 无法将 localdev.{{my application URL}} 识别为 URL,它仍然给我相同的错误代码 191。

  2. 一旦我将主机文件更改为{{my application URL}},而没有“localdev”。它起作用了,所以这一定意味着 URL 必须完全匹配,而不仅仅是域。这是真的?无论如何,它不是最佳的,因为这意味着我必须一直更改主机文件,但这是你可以忍受的......

【问题讨论】:

  • 好问题。无论如何,从 facebook 到本地计算机的实时更新将是相当困难的,所以我怀疑如果你设置了它,你可以做任何事情。
  • @niklasR 这从来都不是问题。如果我更改应用程序网址,我可以让它工作,但随后在线版本停止工作......
  • 反对者请解释
  • 您不需要应用 ID - 只需将您的测试应用部署到与提供实时流量的版本不同的主要版本。
  • @nick 如果它是不同的版本,我必须在不同的 url 中访问它,这意味着我会遇到 facebook 身份验证问题,不是吗?另外,也许你应该把它写在答案中以防止混乱。

标签: google-app-engine facebook-apps


【解决方案1】:

我有 2 个 Facebook 应用程序,一个带有我的真实 URL(用于生产),一个带有 http://127.0.0.1/(用于开发)。然后我的代码中有一个实用程序函数,它检查 self.request.host,并选择适当的应用程序 ID 和密码。

我使用http://127.0.0.1/ 而不是http://localhost/http://localhost:8080/ 的原因是我发现只有http://127.0.0.1/ 可以在Internet Explorer 中使用(其他浏览器似乎可以使用其他两个URL,只要它们与Facebook 应用程序匹配) .

【讨论】:

  • 这是一种可行的方法,赞成...但如果您需要正确的应用程序 ID 来处理非用户启动的服务器任务,或者您的应用程序有特殊设置(例如打开图表),则可能会出现问题东西)。如果没有更好的建议,我会接受。
  • @Uri:服务器任务(例如任务队列)也将有一个 self.request.host 供您查找。但是,是的,这确实意味着拥有多个 Facebook 应用程序,需要进行类似的配置。但是,我发现将 dev 与 prod 分开很有用,这样我就可以对 dev 进行修改而不会冒 prod 的风险。实际上,我在 3 个 Facebook 应用程序中使用了这种方法 - 127.0.0.1 (dev)、dev.mysite.com (test/staging)、mysite.com (prod),dev.mysite.com 在应用程序引擎上公开运行,所以我可以做最后的检查在从开发到生产之前使用真正的应用引擎。
  • +1 因为它是一个可行的解决方案,但这个解决方案不正是我们所说的“暂存环境”吗?你真的可以通过这种方式进行 Facebook 实时更新吗?每个 apppot 应用程序只有一个 Facebook 应用程序。
  • @Niklas R:我的网站在 Facebook 集成方面相当轻松——它使用 Facebook Connect 通过 Facebook 登录用户,获取基本的个人资料信息以及朋友列表。我在github.com/facebook/python-sdk/blob/master/src/facebook.py 使用javascript API 和Python SDK。不,它不适用于实时更新或其他任何需要 Facebook 调用您的应用程序的东西(例如,服务器端 fbml)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
  • 2012-05-04
  • 2011-11-30
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多