根据开发或生产环境更改Facebook登录重定向网址?

时间:2012-02-24 17:38:45

标签: python html django facebook

说实话,我不知道如何标题我的问题。我正在用我的应用程序测试facebook注册api。我有我的localhost:8000 url和我的livesite url。我想做的是让它识别我正在使用哪一个(本地vs实时网址)

我认为这样可行:

<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>

有什么想法吗?非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

只需在您希望当前域的代码中使用{{ request.get_host }}即可。 (假设您正在使用context_instance=RequestContext(request),Django 1.3的render方法或基于类的视图。

<强>更新

似乎Facebook仅允许来自应用设置中指定的域的通信。所以,简单地告诉它重定向到localhost是不够的。它只会给你一个错误。您最好的选择可能是在本地计算机上编辑主机文件并添加如下条目:

127.0.0.1    mydomain.com

在* nix环境(OSX,Ubuntu等)中,您将在/etc/hosts找到hosts文件。在Windows中,它位于C:\Windows\System32\drivers\etc\hosts

这会将所有请求从本地计算机路由回本地计算机。显然,您需要在开发后将其从主机文件中删除,以便能够访问您的生产站点。

答案 1 :(得分:1)

只需创建两个应用程序,并使用一个用于本地开发,一个用于生产。