@php $isMetaConfigured = \App\Models\WabaPlatformSetting::isMetaConfigured(); $isEmbeddedConfigured = \App\Models\WabaPlatformSetting::isEmbeddedSignupConfigured(); $isOAuthEnabled = \App\Models\WabaPlatformSetting::isOAuthEnabled(); // Determine current step $currentStep = 1; if ($isMetaConfigured) $currentStep = 2; if ($isEmbeddedConfigured) $currentStep = 3; if ($isOAuthEnabled) $currentStep = 4; // PENTING: Untuk FB SDK popup mode dengan Embedded Signup, // redirect_uri adalah URL halaman (BUKAN callback URL) $oauthRedirectUri = \App\Services\MetaOAuthService::getOAuthRedirectUri(); @endphp

Integrasi Meta WhatsApp Business

Konfigurasi Facebook Login for Business & WhatsApp Embedded Signup

@if($isOAuthEnabled) Aktif @else Belum Aktif @endif
Progress Konfigurasi
@if($currentStep > 1) @else 1 @endif
Kredensial Meta App
@if($currentStep > 2) @else 2 @endif
Embedded Signup
@if($currentStep > 3) @else 3 @endif
Aktifkan OAuth
@if($currentStep == 4) @else 4 @endif
Siap Digunakan
OAuth Redirect URI PENTING

Salin URL ini ke Meta App → Facebook Login → Valid OAuth Redirect URIs

PENTING: URL ini HARUS sama persis di 3 tempat:
  1. Meta App → Facebook Login → Valid OAuth Redirect URIs
  2. Meta App → Settings → App Domains (tanpa https://)
  3. URL halaman saat client akses WABA Integration
Langkah 1: Kredensial Meta App @if($isMetaConfigured) Selesai @else Wajib Diisi @endif
Cara Mendapatkan Kredensial:
  1. Buka Meta for Developers
  2. Klik "Create App" → Pilih tipe "Business"
  3. Tambahkan produk: "Facebook Login for Business" dan "WhatsApp"
  4. Buka App Settings → Basic untuk melihat App ID dan App Secret
  5. Salin App ID dan App Secret ke form di bawah
@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'meta_app_id')
ID aplikasi dari Meta for Developers
@endif @endforeach
@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'meta_app_secret')
Jangan bagikan secret ini ke siapapun!
@endif @endforeach
@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'meta_business_id')
Business Manager ID platform Anda (untuk Tech Provider)
@endif @endforeach
Langkah 2: WhatsApp Embedded Signup @if($isEmbeddedConfigured) Selesai @elseif($isMetaConfigured) Wajib Diisi @else Menunggu Langkah 1 @endif
Cara Membuat Embedded Signup Configuration:
  1. Buka Meta Business Settings
  2. Klik "Create Configuration"
  3. Isi detail konfigurasi sesuai kebutuhan bisnis Anda
  4. Setelah dibuat, salin Configuration ID ke form di bawah
@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'embedded_signup_config_id')
ID konfigurasi dari WhatsApp Embedded Signup
@endif @endforeach
@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'solution_id')
Hanya untuk partner solutions tertentu
@endif @endforeach
Langkah 3: Aktifkan OAuth @if($isOAuthEnabled) Aktif @elseif($isEmbeddedConfigured) Siap Diaktifkan @else Menunggu Langkah 2 @endif
@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'oauth_enabled')
Jika diaktifkan, client bisa menghubungkan WhatsApp Business Account mereka melalui Self Service
@endif @endforeach
@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'oauth_scopes')
Permission yang diminta (pisahkan dengan koma)
@endif @if($setting['key'] === 'oauth_state_expiry_minutes')
Waktu kedaluwarsa OAuth state
@endif @endforeach
@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'oauth_redirect_uri')
PENTING: URL ini HARUS SAMA PERSIS di 3 tempat:
  1. Di sini (Admin Settings)
  2. Meta App → Facebook Login → Valid OAuth Redirect URIs
  3. Meta App → Settings → App Domains (tanpa https://)

Tidak boleh beda: subdomain, path, trailing slash, protocol (http/https)
Contoh: https://client.whatscrm.id/client/waba-integration
@endif @endforeach
@php $webhookUrl = url('/api/meta/webhook'); $webhookVerifyToken = config('waba.webhook_verify_token'); $hasWebhookToken = !empty($webhookVerifyToken); @endphp
Meta Webhook @if($hasWebhookToken) Configured @else Belum Diset @endif
Konfigurasi Webhook
URL yang akan didaftarkan ke Meta untuk menerima webhook
Token diambil dari .envWABA_WEBHOOK_VERIFY_TOKEN
@if($hasWebhookToken) Token Ready Siap didaftarkan ke Meta @else Token Belum Diset Set WABA_WEBHOOK_VERIFY_TOKEN di file .env @endif
@if(!$hasWebhookToken)
Token Belum Dikonfigurasi

Tambahkan baris berikut ke file .env Anda:

WABA_WEBHOOK_VERIFY_TOKEN={{ \Illuminate\Support\Str::random(32) }}
Setelah menambahkan, jalankan php artisan config:clear
@endif
Cara Setup Webhook
  1. Set WABA_WEBHOOK_VERIFY_TOKEN di file .env
  2. Salin Callback URL dan Verify Token
  3. Buka Meta App Dashboard
  4. Pilih App Anda → WhatsAppConfiguration
  5. Di bagian Webhook, klik Edit
  6. Paste Callback URL dan Verify Token
  7. Klik Verify and Save
  8. Subscribe ke field: messages
Webhook Fields

Subscribe ke field berikut di Meta App:

messages message_template_status_update phone_number_quality_update account_update
Penting!
  • Pastikan server Anda dapat diakses dari internet
  • Gunakan HTTPS untuk Callback URL
  • Simpan Verify Token dengan aman
Pengaturan Lanjutan Opsional
Manajemen Token
@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'token_refresh_days_before_expiry')
Token akan di-refresh X hari sebelum kedaluwarsa
@endif @if($setting['key'] === 'system_user_token')
Untuk mengelola WABA yang dimiliki platform
@endif @endforeach
Pengaturan API
@foreach($settings[$groupKey] ?? [] as $setting) @if($setting['key'] === 'graph_api_version')
Versi Meta Graph API yang digunakan
@endif @endforeach
@php $isTechProviderConfigured = \App\Models\WabaPlatformSetting::isTechProviderConfigured(); @endphp
Tech Provider Model - Global Access Token
Token tunggal untuk semua operasi WABA client
@if($isTechProviderConfigured) Configured @else Belum Diset @endif
Apa itu Tech Provider Model?

Dengan model ini, TIDAK perlu OAuth code exchange per-client. Client cukup melakukan consent via Embedded Signup, kemudian backend menggunakan token global ini untuk:

  • Fetch WABA details dari Meta
  • Repair subscription
  • Setup webhook
  • Semua operasi WABA lainnya
@php // Get global_access_token value directly (fallback to empty) $globalAccessToken = ''; foreach($settings[$groupKey] ?? [] as $setting) { if ($setting['key'] === 'global_access_token') { $globalAccessToken = $setting['value'] ?? ''; break; } } @endphp
Long-lived token dari System User di Business Manager
Cara Mendapatkan Token:
  1. Buka Meta Business Settings → System Users
  2. Buat System User baru atau pilih yang sudah ada
  3. Klik "Generate Token"
  4. Pilih App Anda dan berikan permission:
    • whatsapp_business_management
    • whatsapp_business_messaging
    • business_management
  5. Salin token dan paste di atas
Butuh Bantuan?

Pelajari cara mengintegrasikan WhatsApp Business API dengan platform Anda:

Login for Business Embedded Signup