code: def execute_get(self, resource, **kwargs):
          url = '%s/%s' % (self.base_url, resource)
          headers = kwargs.pop('headers', dict())
          headers['Accept'] = 'application/json'
          headers['Content-Type'] = 'application/json'
          if kwargs:
              separator = '&' if '?' in url else '?'
              for key, value in kwargs.items():
                  if hasattr(value, '__iter__') and type(value) not in six.string_types:
                      url = '%s%s%s=%s' % (url, separator, key, ','.join(value))
                  else:
                      url = '%s%s%s=%s' % (url, separator, key, value)
                  separator = '&'
          if self._access_token:
              headers['Authorization'] = 'Bearer %s' % self._access_token
          else:
              separator = '&' if '?' in url else '?'
              url = '%s%sclient_id=%s&client_secret=%s' % (
                  url, separator, self._client_id, self._client_secret
              )
          response = requests.get(url, headers=headers)
          if response.status_code // 100 != 2:
              raise GhostException(response.status_code, response.json().get('errors', []))
          return response.json()