رفتن به محتوای اصلی
کمپین‌ها (نسخهٔ ۲)

بارگذاری مخاطبان و ساخت سگمنت

post
https://sms.najva.com/v2/sms/campaigns/contacts

فهرستی از مخاطبان را به‌صورت JSON دریافت می‌کند، یک سگمنت (لیست مخاطب) جدید با نامی خودکار می‌سازد و مخاطبان را برای پردازش در آن بارگذاری می‌کند. بدنهٔ درخواست باید یک آرایه از آبجکت‌های تخت باشد که همهٔ مقادیر آن‌ها رشته‌اند. کلید phone_number اجباری است و هر ستون اضافهٔ دیگر باید با حروف بزرگ نوشته شود (مثلاً FIRSTNAME). همهٔ آبجکت‌ها باید دقیقاً مجموعه کلیدهای یکسانی داشته باشند. حداکثر ۱۰۰٬۰۰۰ مخاطب در هر درخواست پذیرفته می‌شود. پردازش به‌صورت غیرهمزمان انجام می‌گیرد؛ برای پیگیری وضعیت از GET /v2/sms/campaigns/contacts/{upload_data_id} استفاده کنید و segment_id را در inclusion_segments هنگام ساخت کمپین به کار ببرید.

احراز هویت

نوع احراز هویتتوکن BearerbearerAuth

کلید API را در هدر Authorization با پیشوند Bearer بفرستید:

``` Authorization: Bearer YOURAPIKEY ```

این روش برای سرویس‌های نسخهٔ ۲، نسخهٔ ۳ و بارگذاری فایل به کار می‌رود. سرویس‌های نسخهٔ ۱ کلید را از مسیر URL می‌گیرند و هدری نمی‌خواهند.

هدر لازم
Authorization: Bearer YOUR_ACCESS_TOKEN

کلید خود را کجا پیدا کنم؟

اطلاعات ورود را از پنل کاربری خود بگیرید و توکن را فقط روی سرور و در یک متغیر محیطی نگه دارید؛ هرگز آن را در کد سمت کاربر قرار ندهید.

بدنهٔ درخواست

application/jsonالزامی

آرایه‌ای از آبجکت‌های تخت با مقادیر رشته‌ای (`[]map[string]string`). کلیدهای هر آبجکت به ستون‌های فایل CSV تولیدشده تبدیل می‌شوند و `phone_number` همیشه اولین ستون است. مقادیر شماره‌ها در این سرویس نرمال‌سازی یا اعتبارسنجی نمی‌شوند و عیناً ارسال می‌شوند.

نامنوعالزامیتوضیح
phone_number*
stringالزامی

شمارهٔ موبایل مخاطب. وجود این کلید در اولین آبجکت آرایه بررسی می‌شود و در نبود آن خطای ۴۰۰ برمی‌گردد. اعتبارسنجی یا نرمال‌سازی شماره در این سرویس انجام نمی‌شود؛ شماره‌های نامعتبر بعداً در گزارش وضعیت بارگذاری به‌عنوان invalid_records_count/malformed_contacts گزارش می‌شوند.

نمونه09121234567
<COLUMN_NAME>
stringاختیاری

هر ستون اضافی دلخواه (مثلاً FIRSTNAME، LASTNAME، CITY) که در پیام‌های شخصی‌سازی‌شدهٔ کمپین قابل استفاده است. نام کلید باید تماماً با حروف بزرگ باشد وگرنه خطای ۴۰۰ برمی‌گردد. همهٔ آبجکت‌های آرایه باید همین مجموعه کلیدها را داشته باشند.

محدودیت: نام کلید باید کاملاً با حروف بزرگ باشد (key == strings.ToUpper(key))

نمونهFIRSTNAME

نمونهٔ درخواست

[
{
"phone_number": "09121234567",
"FIRSTNAME": "علی",
"LASTNAME": "رضایی"
},
{
"phone_number": "09351234567",
"FIRSTNAME": "مریم",
"LASTNAME": "احمدی"
}
]

پاسخ‌ها

ساختار پاسخ

نامنوعالزامیتوضیح
return
ApiStatusاختیاری

وضعیت پاسخ. مقدار status با کد وضعیت HTTP پاسخ یکسان است.

status*
integerالزامی

کد وضعیت — همان کد وضعیت HTTP پاسخ.

نمونه200
message*
stringالزامی

پیام فارسی قابل نمایش به کاربر.

نمونهدرخواست تایید شد.
entries
UploadContactsResponseاختیاری
segment_id
integerاختیاری

شناسهٔ سگمنت ساخته‌شده. آن را در inclusion_segments کمپین بگذارید.

نمونه10
upload_data_id
integerاختیاری

شناسهٔ بارگذاری، برای پیگیری وضعیت پردازش.

نمونه20

نمونهٔ پاسخ

{
"return": {
"status": 200,
"message": "درخواست تایید شد."
},
"entries": {
"segment_id": 10,
"upload_data_id": 20
}
}