'Returns a URI to redirect to the provider.
Args:
redirect_uri: string, Either the string \'urn:ietf:wg:oauth:2.0:oob\' for
a non-web-based application, or a URI that handles the callback from
the authorization server. This parameter is deprecated, please move to
passing the redirect_uri in via the constructor.
Returns:
A URI as a string to redirect the user to begin the authorization flow.'

@util.positional(1)
def step1_get_authorize_url(self, redirect_uri=None):

    if (redirect_uri is not None):
        logger.warning('The    redirect_uri    parameter    forOAuth2WebServerFlow.step1_get_authorize_url    is    deprecated.    Pleasemove    to    passing    the    redirect_uri    in    via    the    constructor.')
        self.redirect_uri = redirect_uri
    if (self.redirect_uri is None):
        raise ValueError('The    value    of    redirect_uri    must    not    be    None.')
    query = {'response_type': 'code', 'client_id': self.client_id, 'redirect_uri': self.redirect_uri, 'scope': self.scope}
    query.update(self.params)
    parts = list(urlparse.urlparse(self.auth_uri))
    query.update(dict(parse_qsl(parts[4])))
    parts[4] = urllib.urlencode(query)
    return urlparse.urlunparse(parts)
