12 lines
2.7 KiB
Markdown
12 lines
2.7 KiB
Markdown
# خروجی مخاطبان برای 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 باید در سمت مصرفکننده یا با محدود کردن دادههای این سرویس کنترل شود.
|