def get_access_token_by_refresh_token(self, refresh_token, scope=None):
        """Function that is used to get a new access token using refresh token

        Parameters:
            * **refresh_token (str):** refresh_token from get_tokens_by_code command
            * **scope (list, optional):** a list of scopes. If not specified should grant access with scope provided in previous request

        Returns:
            **dict:** the tokens with expiry time.

            Example response::

                {
                    "access_token":"SlAV32hkKG",
                    "expires_in":3600,
                    "refresh_token":"aaAV32hkKG1"
                }

        """
        params = {
            "oxd_id": self.oxd_id,
            "refresh_token": refresh_token
        }

        if scope:
            params['scope'] = scope

        logger.debug("Sending command `get_access_token_by_refresh_token` with"
                     " params %s", params)
        response = self.msgr.request("get_access_token_by_refresh_token",
                                     **params)
        logger.debug("Received response: %s", response)

        if response['status'] == 'error':
            raise OxdServerError(response['data'])
        return response['data']
Function that is used to get a new access token using refresh token

        Parameters:
            * **refresh_token (str):** refresh_token from get_tokens_by_code command
            * **scope (list, optional):** a list of scopes. If not specified should grant access with scope provided in previous request

        Returns:
            **dict:** the tokens with expiry time.

            Example response::

                {
                    "access_token":"SlAV32hkKG",
                    "expires_in":3600,
                    "refresh_token":"aaAV32hkKG1"
                }