<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def response_token_setter(remote, resp):
 """Extract token from response and set it for the user. :param remote: The remote application. :param resp: The response. :raises invenio_oauthclient.errors.OAuthClientError: If authorization with remote service failed. :raises invenio_oauthclient.errors.OAuthResponseError: In case of bad authorized request. :returns: The token. """

    if resp is None:
        raise OAuthRejectedRequestError('User rejected request.', remote, resp)
    else:
        if 'access_token' in resp:
            return oauth2_token_setter(remote, resp)
        elif 'oauth_token' in resp and 'oauth_token_secret' in resp:
            return oauth1_token_setter(remote, resp)
        elif 'error' in resp:
            # Only OAuth2 specifies how to send error messages
            raise OAuthClientError(
                'Authorization with remote service failed.', remote, resp,
            )
    raise OAuthResponseError('Bad OAuth authorized request', remote, resp)