Get access_token fron an user authorized code, the client id and the client secret key.
    (See https://developer.google.com/v3/oauth/#web-application-flow).

def login(access_code:str, client_id:str=CLIENT_ID, client_secret:str=CLIENT_SECRET,
          headers:dict=HEADERS, redirect_uri:str=REDIRECT_URI):
    """
    Get access_token fron an user authorized code, the client id and the client secret key.
    (See https://developer.google.com/v3/oauth/#web-application-flow).
    """
    if not CLIENT_ID or not CLIENT_SECRET:
        raise GoogleApiError({"error_message": _("Login with google account is disabled. Contact "
                                                     "with the sysadmins. Maybe they're snoozing in a "
                                                     "secret hideout of the data center.")})

    url = _build_url("login", "access-token")
    params={"code": access_code,
            "client_id": client_id,
            "client_secret": client_secret,
            "grant_type": "authorization_code",
            "redirect_uri": redirect_uri}
    data = _post(url, params=params, headers=headers)
    return AuthInfo(access_token=data.get("access_token", None))