2011-09-25 43 views
1

我想在本地進行測試和開發,同時讓應用程序無所不在,而且我不想使用兩個單獨的應用程序ID,因爲這意味着每次部署新版本時都必須更改代碼,然後將其更改回來。如何在Google App Engine上本地測試Facebook應用程序(代碼191錯誤)?

我知道我可以更改主機文件,以便localdev.{{my application URL}}將參考本地主機和URL將是有效的,所以我不會得到191碼,但谷歌應用程序引擎啓動強迫我使用端口8080,這不能在主機文件中定義。如果我嘗試輸入localdev.{{my application URL}}:8080,則會再次收到191錯誤代碼。

有什麼方法可以使用端口80與Google App Engine啓動器?

或者還有其他解決方案嗎?

更新:

  1. 我設法通過使用從谷歌App Engine的目錄Python的文件,而不是谷歌應用程序引擎啓動GUI本地端口80上運行。但是,Facebook不會將localdev.{{my application URL}}識別爲URL,並且它仍然會給出相同的錯誤代碼,191。

  2. 一旦我將主機文件更改爲{{my application URL}}而沒有「localdev」。它的工作,所以這必須意味着URL必須完全匹配,而不僅僅是域。這是真的?無論如何,這是不是最佳的,因爲這意味着我必須要改變主機文件中的所有時間,但它的東西,你可以住在一起......

+0

好問題..無論如何,要從facebook到你的本地機器實時更新將是相當困難的,所以我懷疑你可以做任何事情,如果你得到它的設置。 –

+0

@niklasR這是從來沒有問題..我可以得到它的工作,如果我改變了應用程序的網址,但然後在線版本停止工作... – Uri

+0

Downvoter請解釋 – Uri

回答

2

我有2個Facebook應用程序,一個與我的真實網址(用於生產),另一個用於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會工作(其他瀏覽器看起來很好與其他兩個網址,只要它們相匹配的Facebook應用程序)的原因。

+0

這是一種方法,upvoted ...但它可能會有問題,如果你需要正確的應用程序ID爲非用戶啓動的服務器任務,或者如果你有你的應用程序的特殊設置(如打開圖形的東西)。如果沒有更好的建議,我會接受。 – Uri

+0

@Uri:服務器任務(例如taskqueue)也會有一個self.request.host,您可以查看它。但是,它確實意味着有多個Facebook應用程序,需要進行類似配置。不過,我發現將dev與prod分開是很有用的,這樣我就可以對開發進行修改而不會冒冒犯的風險。其實我用這個方法與3個Facebook應用程序 - http://127.0.0.1/(dev),http://dev.mysite.com(測試/分期),http://www.mysite.com(prod),與http://dev.mysite.com在應用程序引擎上公開運行,所以我可以在從開發到產品之前使用真正的應用程序引擎進行最終檢查。 –

+0

+1,因爲它是一個可行的解決方案,但是這種解決方案不是我們所說的「分段環境」嗎?你真的可以用這種方式做Facebook實時更新嗎?每個appspot應用程序只有一個facebook應用程序。 –

相關問題