2012-02-24 35 views
0

說實話,我不知道如何標題我的問題。我正在用我的應用測試Facebook註冊API。我有我的localhost:8000 url和我的livesite網址。我想要做的,是有它認識我使用(本地VS直播網址)其中一個根據開發或生產環境更改Facebook登錄重定向網址?

我想這會工作:

<a href="https://www.facebook.com/plugins/registration.php?client_id=98493fakenumber239&redirect_uri=settings.SITE_URL+"social_login/facebook/&fields=%5B%7B%22name%22%3A%22name%22%2C%22view%22%3A%22prefilled%22%7D%2C%7B%22name%22%3A%22first_name%22%7D%2C%7B%22name%22%3A%22last_name%22%7D%2C%7B%22name%22%3A%22email%22%7D%2C%7B%22name%22%3A%22password%22%7D%5D" class="facebook"></a> 

任何想法?非常感激你的幫助。

+0

我假設你已經在設置中爲'SITE_URL'存儲了一些值?這在默認情況下不存在。 – 2012-02-24 18:52:55

+0

是的,我有'SITE_URL'的值。 把'', fb返回''redirect_uri'應該是一個絕對網址' – Modelesq 2012-02-24 20:57:05

+0

你需要用'http://'作爲前綴。 – 2012-02-24 21:02:35

回答

2

只需在您想要當前域的代碼中使用{{ request.get_host }}即可。 (假設您使用的是context_instance=RequestContext(request),Django 1.3的render方法或基於類的視圖)。

UPDATE

似乎Facebook的只允許在你的應用程序的設置中指定的域通信。所以,簡單地告訴它重定向到本地主機是不夠好的。它只會給你你得到的錯誤。最好的辦法是有可能會被編輯你的主機在本地計算機上的文件和添加類似的條目:

127.0.0.1 mydomain.com 

在* nix的環境(OSX,Ubuntu的,等等),你會發現在主機文件/etc/hosts。在Windows中它在C:\Windows\System32\drivers\etc\hosts

這會將所有請求路由到您的本地機器返回到本地機器。顯然,在開發之後,您需要將其從主機文件中刪除,以便能夠訪問您的生產站點。

1

只需創建兩個應用程序,並使用一個用於本地開發,一個用於生產。