如何处理用于开发和调试Facebook身份验证的回调URL?

如何处理用于开发和调试Facebook身份验证的回调URL?,facebook,deployment,oauth,Facebook,Deployment,Oauth,我正在建立一个使用Facebook身份验证的网站。问题是,我一次只能有一个回调url,所以当我在本地工作时,我使用我的localhost url作为回调url,当我想在Heroku上测试它时,我将它切换到真实的url 现在还可以,因为我还没有向公众发布,我可以从localhost切换到真实的url,而不用担心用户被锁定 然而,我想知道,一旦我发布了这项服务,并且实际上有人在使用这项服务,我怎么能做到这一点。谢谢你的建议。(我肯定这是一个全新的问题,但是,嘿,你必须从某个地方开始)你可以根据每个请

我正在建立一个使用Facebook身份验证的网站。问题是,我一次只能有一个回调url,所以当我在本地工作时,我使用我的localhost url作为回调url,当我想在Heroku上测试它时,我将它切换到真实的url

现在还可以,因为我还没有向公众发布,我可以从localhost切换到真实的url,而不用担心用户被锁定


然而,我想知道,一旦我发布了这项服务,并且实际上有人在使用这项服务,我怎么能做到这一点。谢谢你的建议。(我肯定这是一个全新的问题,但是,嘿,你必须从某个地方开始)

你可以根据每个请求指定回拨URL。无论您在请求中指定什么,都将覆盖您在应用程序设置中配置的默认回调URL。您可以通过在初始O-auth身份验证请求中传递“redirect_uri”参数来实现这一点

下面是我在一个项目中使用的一些PHP代码的片段:

    public function authenticate(array $params) {
      $scope = empty($params['scope']) ? 'email,publish_stream,offline_access' : $params['scope'];

      $fb= FB::get_fb_api(); //singleton to get Facebook API object

      $login_url = $fb->getLoginUrl(array(
          'redirect_uri' => $GLOBALS['CONFIG']->base_url . '/fbOauth/signin_callback',
          'scope' => $scope,
          'display' => 'popup'
       ));


      header("Location: $login_url");

    }

如您所见,我动态设置了基本url—因此,我的开发环境将传递与我的生产环境不同的url。

您可以根据每个请求指定回调url。无论您在请求中指定什么,都将覆盖您在应用程序设置中配置的默认回调URL。您可以通过在初始O-auth身份验证请求中传递“redirect_uri”参数来实现这一点

下面是我在一个项目中使用的一些PHP代码的片段:

    public function authenticate(array $params) {
      $scope = empty($params['scope']) ? 'email,publish_stream,offline_access' : $params['scope'];

      $fb= FB::get_fb_api(); //singleton to get Facebook API object

      $login_url = $fb->getLoginUrl(array(
          'redirect_uri' => $GLOBALS['CONFIG']->base_url . '/fbOauth/signin_callback',
          'scope' => $scope,
          'display' => 'popup'
       ));


      header("Location: $login_url");

    }

如您所见,我动态设置了基本url,因此,我的开发环境将传递与我的生产环境不同的url。

谢谢,但我找到了另一种方法。我认为创建两个应用程序更简单,一个用于开发,一个用于生产,并相应地连接它们,正如这里提到的:谢谢,但我找到了另一种方法。我认为创建两个应用程序更简单,一个用于开发,一个用于生产,并相应地连接它们,如下所述: