رفتن به محتوای اصلی

شروع به کار

معماری، پیکربندی لازم اپلیکیشن متا و متغیرهای محیطی مورد نیاز برای اجرای هما متا پلتفرم در محیط توسعه و تولید.

نمای کلی معماری

هما متا پلتفرم یک لایهٔ یکپارچه‌سازی بدون حالت است. فرایند احراز دسترسی با متا را مدیریت می‌کند و رویدادهای استانداردشده را به هما CRM تحویل می‌دهد. هیچ اعتبارنامهٔ متا هرگز به مرورگر نمی‌رسد.

لایهٔ وب عمومی
همین وب‌سایت. صفحات معرفی، حقوقی و مستندات توسعه‌دهندگان را ارائه می‌کند و نقطهٔ ورود ‎/connect را برای شروع درخواست احراز دسترسی در اختیار می‌گذارد.
سرویس احراز دسترسی
یک مسیر صرفاً سمت سرور که نشانی احراز دسترسی متا را می‌سازد، کوکی state امضاشده را تنظیم می‌کند و سپس کد احراز دسترسی را با توکن مبادله می‌کند. تنها روی سرور اجرا می‌شود.
گیرندهٔ وب‌هوک
یک نقطهٔ پایانی HTTPS که امضای هر بار داده را بررسی می‌کند، رویدادهای تکراری را حذف می‌کند و آن‌ها را برای پردازش در صف قرار می‌دهد.
مخزن توکن
ذخیره‌سازی رمزنگاری‌شدهٔ توکن‌های بلندمدت، جداشده به ازای هر مستأجر. توکن‌ها هرگز در گزارش‌ها ثبت نمی‌شوند و به هیچ کلاینتی بازگردانده نمی‌شوند.
هما CRM
محصول مصرف‌کننده. گفت‌وگوها، دیدگاه‌ها و رکوردهای مخاطب استانداردشده را از طریق APIهای داخلی دریافت می‌کند.

جریان درخواست

  1. کاربر وارد‌شده به هما CRM صفحهٔ ‎/connect را در این سایت باز می‌کند.
  2. کاربر سیاست حفظ حریم خصوصی و شرایط استفاده از خدمات را می‌پذیرد. دکمهٔ ارسال تا پذیرش هر دو مورد غیرفعال می‌ماند.
  3. مرورگر درخواست POST را به یک مسیر سمت سرور ارسال می‌کند. آن مسیر یک مقدار state تصادفی می‌سازد، آن را در کوکی HttpOnly ذخیره می‌کند و کاربر را به متا هدایت می‌کند.
  4. کاربر مستقیماً در متا احراز هویت می‌کند و دارایی‌های واجد شرایط مورد نظر را انتخاب می‌کند. هما هرگز این اعتبارنامه‌ها را نمی‌بیند.
  5. متا کاربر را همراه با یک کد احراز دسترسی به نشانی بازگشت پیکربندی‌شده هدایت می‌کند.
  6. سرور مقدار state بازگشتی را با کوکی مقایسه و اعتبارسنجی می‌کند، سپس کد را در یک تماس سرور‌به‌سرور با توکن دسترسی مبادله می‌کند.
  7. توکن رمزنگاری و به نام مستأجر ذخیره می‌شود. کاربر در صفحهٔ ‎/authorized فرود می‌آید.

پیکربندی لازم اپلیکیشن متا

یک اپلیکیشن در داشبورد اپلیکیشن‌های متا بسازید و سپس مقادیر زیر را پیکربندی کنید. از دو اپلیکیشن جداگانه استفاده کنید تا ترافیک محیط توسعه هرگز نتواند روی داده‌های تولید بنویسد.

تنظیممقدار
دامنهٔ اپلیکیشنmeta.homacrm.com
نشانی سایتhttps://meta.homacrm.com
نشانی بازگشت مجاز OAuthhttps://meta.homacrm.com/authorized
نشانی فراخوان لغو دسترسیhttps://meta.homacrm.com/api/meta/deauthorize
نشانی درخواست حذف دادهhttps://meta.homacrm.com/api/meta/data-deletion
نشانی سیاست حفظ حریم خصوصیhttps://meta.homacrm.com/privacy
نشانی شرایط استفاده از خدماتhttps://meta.homacrm.com/terms
راهنمای حذف داده‌های کاربرhttps://meta.homacrm.com/data-deletion

متغیرهای محیطی

تنها مقادیری که با ‎NEXT_PUBLIC_‎ آغاز می‌شوند در کد مرورگر قابل دسترسی هستند. سایر موارد فقط سمت سرور هستند. برای محیط توسعه، فایل ‎.env.example را به ‎.env.local کپی کنید.

.env.local
# عمومی — انتشار آن در مرورگر بی‌خطر است
NEXT_PUBLIC_SITE_URL=https://meta.homacrm.com
NEXT_PUBLIC_HOMA_URL=https://www.homacrm.com

# فقط سمت سرور — نقطهٔ پایانی احراز دسترسی و هویت اپلیکیشن
META_AUTHORIZATION_URL=
META_APP_ID=
META_REDIRECT_URI=https://meta.homacrm.com/authorized

# فقط سمت سرور — هرگز منتشر نکنید و پیشوند NEXT_PUBLIC_ نگذارید
META_APP_SECRET=

# ایمیل تراکنشی برای فرم‌های تماس و حذف داده
RESEND_API_KEY=
CONTACT_EMAIL=support@homacrm.com
DATA_DELETION_EMAIL=privacy@homacrm.com
SUPPORT_EMAIL=support@homacrm.com
SECURITY_EMAIL=security@homacrm.com

سایت در غیاب متغیرهای اختیاری به‌صورت کنترل‌شده کار می‌کند. اگر ‎META_AUTHORIZATION_URL تنظیم نشده باشد، صفحهٔ ‎/connect به‌جای بروز خطا توضیح می‌دهد که احراز دسترسی هنوز پیکربندی نشده است. اگر ‎RESEND_API_KEY تنظیم نشده باشد، فرم‌ها نشانی ایمیل جایگزین و یک شمارهٔ پیگیری نشان می‌دهند و ارسالی را که رخ نداده است گزارش نمی‌کنند.

جداسازی محیط توسعه و تولید

  • برای محیط توسعه از یک اپلیکیشن متای جداگانه با شناسه، کلید محرمانه و نشانی بازگشت مخصوص خود استفاده کنید.
  • نشانی بازگشت محیط توسعه را به میزبان محلی یا پیش‌نمایش خود متصل کنید و آن را فقط در همان اپلیکیشن ثبت کنید.
  • هرگز مخزن توکن را میان محیط‌ها به اشتراک نگذارید. یک توکن توسعه نباید بتواند گفت‌وگوهای محیط تولید را بخواند.
  • برای هر محیط از توکن تأیید وب‌هوک متفاوتی استفاده کنید تا یک اشتراک اشتباه به‌جای نوشتن روی مستأجر نادرست، با خطای آشکار متوقف شود.
  • دارایی‌های آزمایشی را از دارایی‌های مشتریان جدا نگه دارید. صفحهٔ یک مشتری واقعی را با اپلیکیشن توسعه مجاز نکنید.