Files
2026-09-30 11:09:12 +03:30
..
2026-09-30 08:39:26 +03:30
2026-09-30 08:39:26 +03:30
2026-09-30 08:39:26 +03:30
2026-09-30 08:39:26 +03:30
2026-09-30 08:39:26 +03:30
2026-09-30 11:09:12 +03:30
2026-09-30 11:09:12 +03:30
2026-09-30 08:39:26 +03:30
2026-09-30 11:09:12 +03:30

خروجی مخاطبان برای Phone

این برنامه endpoint خواندنی GET /api/phone-contacts?search=...&limit=50 را مطابق قرارداد ابتدای EXTERNAL_CONTACT_APIS.md ارائه می‌کند. پاسخ همیشه شیء JSON با کلید contacts است. هر مخاطب فعال دارای پروفایل و نام، با شمارهٔ ثبت‌شده‌اش برگردانده می‌شود. هر نتیجه فیلد مستقیم mobile و آرایهٔ سازگار با Phone یعنی phones را دارد. جست‌وجو با نام و با شمارهٔ کامل در قالب‌های 0، +98 و 0098 برای هر پیش‌شماره‌ای انجام می‌شود. مدل فعلی فقط شمارهٔ همراه را در مسیر عادی ثبت می‌کند؛ شمارهٔ ثابت تنها اگر از قبل در داده موجود باشد قابل جست‌وجو است. سقف پاسخ ۵۰ مخاطب است. جزئیات در docs/PHONE_CONTACTS_API.md آمده است.

راه‌اندازی

  1. Migration برنامه را با محیط مجازی پروژه اجرا کنید: .venv/Scripts/python.exe manage.py migrate phone_contacts_api.
  2. در /x5admin/، بخش «دسترسی API مخاطبان Phone» ← «کلید API مخاطبان Phone» را باز کنید. یک کلید تصادفی حداقل ۳۲ نویسه‌ای ثبت کنید. مقدار کلید فقط هنگام ذخیره دریافت می‌شود و در دیتابیس به صورت هش نگهداری می‌شود. برای تعویض کلید، رکورد را ویرایش کنید؛ خالی گذاشتن فیلد کلید، مقدار قبلی را حفظ می‌کند. با خاموش کردن «فعال»، دسترسی بلافاصله قطع می‌شود.
  3. در پنل Phone منبع GET بسازید: آدرس ثابت https://<host>/api/phone-contacts، پارامترها {"search":"{{query}}","limit":50}، هدر {"Authorization":"Bearer {{env:PHONE_EXTERNAL_CRM_TOKEN}}"}، مسیر فهرست contacts، مسیر نام name و نگاشت شماره‌ها [{"path":"phones[]","value_path":"number","label_path":"type"}]. مقدار PHONE_EXTERNAL_CRM_TOKEN در میزبان Phone باید همان کلید ثبت‌شده در دیتابیس این پروژه باشد.

کلید به کاربران سایت وابسته نیست؛ خروجی این endpoint شامل همه مخاطبان فعال دارای پروفایل و نام است. همان‌طور که راهنمای Phone توضیح می‌دهد، دسترسی کاربران Phone باید در سمت مصرف‌کننده یا با محدود کردن داده‌های این سرویس کنترل شود.