أمثلة إرسال الاستبيانات (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);