WhatsAppCloudClient constructor

WhatsAppCloudClient({
  1. required String phoneNumberId,
  2. required String accessToken,
  3. Environment environment = Environment.production,
  4. WhatsAppApiConfig? config,
})

Creates a new WhatsApp Cloud API client.

phoneNumberId is the WhatsApp Business Account phone number ID. accessToken is the authentication token for the API. environment specifies the API environment (production/sandbox). config provides optional custom configuration settings.

Implementation

WhatsAppCloudClient({
  required this.phoneNumberId,
  required this.accessToken,
  Environment environment = Environment.production,
  WhatsAppApiConfig? config,
}) : config = config ?? WhatsAppApiConfig(environment: environment) {
  _logger = Logger(level: this.config.logLevel);
  _logger.info('Initializing WhatsAppCloudClient');

  _authManager = AuthManager(
    accessToken: accessToken,
    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('WhatsAppCloudClient initialized successfully');
}