WhatsAppCloudServerClient constructor

WhatsAppCloudServerClient({
  1. required String phoneNumberId,
  2. required String accessToken,
  3. WhatsAppApiConfig? config,
})

Creates a new WhatsApp Cloud API server client.

phoneNumberId is the WhatsApp Business Account phone number ID. accessToken is the authentication token for the API. config provides optional custom configuration settings.

Implementation

WhatsAppCloudServerClient({
  required this.phoneNumberId,
  required this.accessToken,
  WhatsAppApiConfig? config,
}) : config = config ?? const WhatsAppApiConfig() {
  _logger = Logger(level: this.config.logLevel);
  _logger.info('Initializing WhatsAppCloudServerClient');

  // Use in-memory token storage for server environments
  final tokenStorage = ServerInMemoryTokenStorage(logger: _logger);

  _authManager = ServerAuthManager(
    accessToken: accessToken,
    tokenStorage: tokenStorage,
    logger: _logger,
  );

  _apiClient = ApiClient(
    baseUrl: this.config.baseUrl,
    authManager: _authManager,
    logger: _logger,
    connectTimeout: this.config.connectTimeout,
    receiveTimeout: this.config.receiveTimeout,
    retryPolicy: this.config.retryPolicy,
  );

  _messageService = MessageService(
    apiClient: _apiClient,
    phoneNumberId: phoneNumberId,
    logger: _logger,
  );

  _templateService = TemplateService(
    apiClient: _apiClient,
    phoneNumberId: phoneNumberId,
    logger: _logger,
  );

  _mediaService = MediaService(
    apiClient: _apiClient,
    phoneNumberId: phoneNumberId,
    logger: _logger,
  );

  _contactService = ContactService(
    apiClient: _apiClient,
    phoneNumberId: phoneNumberId,
    logger: _logger,
  );

  _webhookService = WebhookService(
    logger: _logger,
  );

  _logger.info('WhatsAppCloudServerClient initialized successfully');
}