انتقل إلى المحتوى

أمثلة إرسال الاستبيانات (JavaScript و PHP)

أمثلة جاهزة لاستدعاء إرسال الاستبيانات من تطبيقك. استبدل:

  • https://api-cxm.akwad.sa - الرابط الأساسس
  • {collector_uuid} - معرف المُجمّع من Collect → API → Details
  • {your_token} - رمز الوصول الخارجي

TIP

راجع استجابات الإرسال لفهم رموز HTTP والأخطاء. لقناة sms يكون phone إلزاميًا و email اختياريًا.

JavaScript

JavaScript - fetch
js
const apiBase = 'https://api-cxm.akwad.sa';
const collectorUuid = '{collector_uuid}';
const token = '{your_token}';

async function sendSurveyInvites() {
  const response = await fetch(
    `${apiBase}/api/v1/collectors/api/${collectorUuid}`,
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        Accept: 'application/json',
        'Accept-Language': 'ar',
        'X-External-Access-Token': token,
      },
      body: JSON.stringify({
        medium: 'sms',
        recipients: [
          {
            email: 'john1@example.com',
            phone: '+966501234567',
            first_name: 'John',
            last_name: 'Doe',
            variables: { request_number: 'REQ-88421' },
          },
        ],
      }),
    },
  );

  const payload = await response.json();

  if (!response.ok) {
    console.error(payload.message, payload.errors);
    throw new Error(payload.message ?? 'Send request failed');
  }

  return payload.data;
}

sendSurveyInvites()
  .then((data) => console.log('Queued:', data))
  .catch((error) => console.error(error));

PHP

PHP - cURL
php
<?php

$apiBase = 'https://api-cxm.akwad.sa';
$collectorUuid = '{collector_uuid}';
$token = '{your_token}';

$url = rtrim($apiBase, '/').'/api/v1/collectors/api/'.$collectorUuid;

$body = json_encode([
    'medium' => 'sms',
    'recipients' => [
        [
            'email' => 'john1@example.com',
            'phone' => '+966501234567',
            'first_name' => 'John',
            'last_name' => 'Doe',
            'variables' => ['request_number' => 'REQ-88421'],
        ],
    ],
], JSON_THROW_ON_ERROR);

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Accept: application/json',
        'Accept-Language: ar',
        'X-External-Access-Token: '.$token,
    ],
    CURLOPT_POSTFIELDS => $body,
]);

$responseBody = curl_exec($ch);
$statusCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$payload = json_decode($responseBody, true, 512, JSON_THROW_ON_ERROR);

if ($statusCode < 200 || $statusCode >= 300) {
    throw new RuntimeException($payload['message'] ?? 'Send request failed');
}

/** @var array<string, mixed> $data */
$data = $payload['data'];
print_r($data);

← استجابات الإرسال

AKWAD CXM - مركز المساعدة