عیبیابی API (API Troubleshooting)
این بخش به شما کمک میکند تا مشکلات رایج هنگام کار با متریکس REST API را شناسایی و حل کنید.
۱. مشکلات احراز هویت و دسترسی (Authentication & Access Issues)
-
خطای
403 Forbidden:- دلیل ۱: API Key اشتباه یا نامعتبر.
- راهحل:
APP_IDوAPI_Keyخود را از بخش تنظیمات اپلیکیشن در پنل متریکس مجدداً بررسی کنید.
- راهحل:
- دلیل ۲: تنظیم WhiteList IP در پنل.
- توضیح: اگر در پنل متریکس برای API خود WhiteList IP تنظیم کردهاید، فقط درخواستهایی از IPهای مجاز پاسخ داده میشوند.
- راهحل: اطمینان حاصل کنید که درخواستهای شما از IPهای ثبت شده در WhiteList ارسال میشوند یا تنظیمات WhiteList را در پنل بررسی و در صورت نیاز موقتاً غیرفعال کنید.
- دلیل ۱: API Key اشتباه یا نامعتبر.
-
افشا شدن Server API Key:
- نکته امنیتی: Server API Key نباید هرگز در کد سمت کلاینت (وب یا اپلیکیشن موبایل) استفاده یا افشا شود.
- راهحل: اگر Server API Key شما لو رفت یا به اشتباه در معرض دید قرار گرفت، فوراً در پنل متریکس نوع آن را به Client تغییر دهید و سپس یک API Key جدید بسازید و جایگزین کنید.
۲. مشکلات مربوط به فرمت و داده (Data Format & Content Issues)
-
خطای
400 Bad Request:- دلیل احتمالی: ساختار JSON نامعتبر یا فیلدهای ناقص/اشتباه.
- راهحل:
- مطمئن شوید بدنه درخواست شما JSON معتبر است.
- تمامی فیلدهای اجباری (
type,id,time,name/customNameو شناسههای کاربری مربوطه) را بررسی کنید. - نوع داده هر فیلد (مانند
timeوbirthdayبه صورت عددی Long،revenueبه صورت Double) را مطابق مستندات بررسی کنید.
-
رویدادها در پنل نمایش داده نمیشوند اما کد
200 OKدریافت شده:- توضیح: دریافت کد
200 OKفقط به معنای موفقیتآمیز بودن ارسال درخواست به سرور است و لزوماً به معنی پردازش صحیح رویداد نیست. - دلایل احتمالی:
- رویداد تکراری: اگر یک رویداد را با
metrixUserIdثابت وtimeیکسان ارسال کنید، سیستم متریکس آن را به صورت خودکار تکراری تشخیص داده و حذف (Drop) میکند. customUserIdیاmetrixUserIdنادرست/ناقص.nameیاcustomNameنامعتبر یا خالی.
- رویداد تکراری: اگر یک رویداد را با
- راهحل:
- مطمئن شوید برای هر پیام
idیکتا و برای هر رویدادtimeصحیح و منطقی ارسال میکنید. - صحت شناسههای
customUserIdوmetrixUserIdرا بررسی کنید. - از صحت
nameیاcustomNameو پیروی از Taxonomy اطمینان حاصل کنید.
- مطمئن شوید برای هر پیام
- توضیح: دریافت کد
۳. مشکلات مربوط به کانالهای پیامرسانی (Messaging Channel Issues)
- عدم دریافت پیام (Push/SMS/Email):
- راهحل: قبل از تست از طریق API، حتماً ارسال پیام از طریق پنل متریکس برای کانال مورد نظر (مثلاً Push Notification یا SMS) را تست کرده باشید. این کار اطمینان میدهد که تنظیمات کانال شما در پنل صحیح است.
۴. مشکلات اتصال سرور (Server Connectivity Issues)
-
عدم برقراری ارتباط با Endpoint متریکس:
- دلیل احتمالی: فایروال سرور شما، مشکلات شبکه، یا DNS Resolution ناموفق.
- راهحلها:
- بررسی وضعیت DNS: مطمئن شوید سرور شما میتواند آدرس
entry.metrix.irرا به IP مربوطه تبدیل کند. میتوانید از دستورdigیاnslookupدر ترمینال سرور خود استفاده کنید:یاdig entry.metrix.irnslookup entry.metrix.ir - تست اتصال (Ping/Telnet/cURL): بررسی کنید آیا سرور شما میتواند به Endpoint متریکس دسترسی پیدا کند.
- با Telnet (برای پورت 443):
اگر اتصال برقرار شود، صفحهای خالی یا پیام “Connected” را مشاهده خواهید کرد. در غیر این صورت، مشکل در فایروال یا شبکه وجود دارد.
telnet entry.metrix.ir 443 - با cURL (تست ساده اتصال):
این دستور جزئیات اتصال را نشان میدهد و میتواند به شناسایی مشکلات SSL/TLS یا شبکه کمک کند.
curl -v https://entry.metrix.ir/
- با Telnet (برای پورت 443):
- بررسی فایروال سرور: مطمئن شوید فایروال سرور شما اجازه دسترسی به پورت 443 (HTTPS) و دامنه
entry.metrix.irرا میدهد. - بررسی لاگهای شبکه: لاگهای شبکه سرور خود را برای هرگونه خطای اتصال یا رد شدن درخواستها بررسی کنید.
- بررسی وضعیت DNS: مطمئن شوید سرور شما میتواند آدرس
-
خطاهای سرور (
5xx Server Error) یا Timeout:- دلیل احتمالی: این خطاها معمولاً به مشکلات موقتی در سمت سرور متریکس یا مشکلات شبکه گستردهتر اشاره دارند.
- راهحل: مشکل ممکن است موقتی باشد. درخواست را مجدداً ارسال کنید (با مکانیزم Retry و Exponential Backoff). اگر ادامه داشت، با پشتیبانی تماس بگیرید.
۵. تماس با پشتیبانی
اگر با وجود بررسیهای بالا، همچنان با مشکلی مواجه هستید، لطفاً با تیم پشتیبانی متریکس تماس بگیرید. برای تسریع فرآیند عیبیابی، اطلاعات زیر را حتماً ارسال کنید:
APP_IDشما.- درخواست
curlکامل مربوط به مشکل (شامل Headers و Body). - پاسخ دریافتی از سرور متریکس (شامل کد وضعیت HTTP و بدنه پاسخ).
- تاریخ و زمان دقیق وقوع مشکل (UTC).
- هرگونه پیام خطای مربوطه از لاگهای سرور شما.