public static function fromArray(array $data)
	{
		if ( ! array_key_exists('client_id', $data))
			throw new ClientConfigurationException('Configuration file has no client_id set');
		if ( ! array_key_exists('client_secret', $data))
			throw new ClientConfigurationException('Configuration file has no client_secret set');
		if ( ! array_key_exists('site_token', $data))
			throw new ClientConfigurationException('Configuration file has no site_token set');

		$baseUrl = ( ! array_key_exists('api', $data))
			? null
			: $data['api'];

		$httpClientConfig = ( ! array_key_exists('http_client', $data))
			? array()
			: $data['http_client'];

		$clientConfig = new ClientConfig($data['client_id'], $data['client_secret'], $data['site_token'], $baseUrl, $httpClientConfig);

		if (array_key_exists('cache_file', $data))
			$clientConfig->setAccessTokenCacheFile($data['cache_file']);

		return $clientConfig;
	}