code: def get_access_token_by_refresh_token(self, refresh_token, scope=None):
          
          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']
docs: 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"
                  }