شناسایی کاربر (User Authorization)
پس از راهاندازی SDK، متد authorizeUser را فراخوانی کنید تا کاربری که با وبسایت شما در تعامل است، شناسایی شود. این کار باعث میشود دادههای بعدی که توسط SDK ارسال میشوند به آن کاربر اختصاص یابند و پروفایل کاربر در سرویس متریکس ایجاد یا بازیابی شود.
import { authorizeUser, init } from '@metrixorg/websdk';
init('APP_ID', 'API_KEY');
authorizeUser('CUSTOM_USER_ID');authorizeUser(username: string): void| نام | نوع | توضیح | الزامی |
|---|---|---|---|
username | string | یک شناسهٔ یکتا و پایدار که در وبسایت شما به کاربر اختصاص داده شده است. | بله |
متد authorizeUser را باید بعد از init و قبل از ارسال هرگونه رویداد یا اطلاعاتی که باید به کاربر شناساییشده مرتبط شوند، فراخوانی کنید. SDK از این شناسه برای اتصال دادهها به پروفایل کاربر استفاده میکند و این شناسه لزوماً نباید نام نمایشی کاربر باشد.
برای بازگرداندن SDK به حالت ناشناس (Anonymous)، مثلاً هنگام خروج کاربر (logout)، از متد زیر استفاده کنید:
import { deauthorizeUser } from '@metrixorg/websdk';
deauthorizeUser();deauthorizeUser هویت کاربر فعلی و اطلاعات ذخیرهشده در پروفایل او را از حافظه SDK پاک میکند.
بهروزرسانی پروفایل کاربر (User Profile)
پس از فراخوانی authorizeUser، میتوانید با استفاده از متدهای زیر، پروفایل کاربر را در متریکس بهروزرسانی کنید. هر یک از این متدها یک callback اختیاری به عنوان آرگومان دوم میپذیرند که پس از موفقیتآمیز بودن عملیات، اجرا میشود.
setFirstName(firstName: string, callback?: () => void): voidsetLastName(lastName: string, callback?: () => void): voidsetEmail(email: string, callback?: () => void): voidsetHashedEmail(hashedEmail: string, callback?: () => void): voidsetPhoneNumber(phoneNumber: string, callback?: () => void): voidsetHashedPhoneNumber(hashedPhoneNumber: string, callback?: () => void): voidsetCountry(country: string, callback?: () => void): voidsetCity(city: string, callback?: () => void): voidsetRegion(region: string, callback?: () => void): voidsetLocality(locality: string, callback?: () => void): voidsetGender(gender: 'male' | 'female' | 'other', callback?: () => void): voidsetBirthday(birthday: number, callback?: () => void): voidsetCustomAttribute(key: string, value: string, callback?: () => void): voidمثال:
import {
setFirstName,
setEmail,
setGender,
setBirthday,
setCustomAttribute,
} from '@metrixorg/websdk';
setFirstName('Ali', () => console.log('First name updated!'));
setEmail('ali@example.com');
setGender('male');
setBirthday(new Date('1990-05-20').getTime()); // Use timestamp
setCustomAttribute('plan', 'premium');نکته امنیتی: اگر در یکپارچهسازی خود نیاز به ارسال اطلاعات تماس هششده دارید، از setHashedEmail و setHashedPhoneNumber استفاده کنید. از ارسال مقادیر حساس به عنوان custom attribute خودداری کنید، مگر اینکه سیاستهای دادهٔ شما این کار را مجاز بداند.
setFcmToken برای یکپارچهسازیهایی که از Firebase Cloud Messaging استفاده میکنند، کاربرد دارد. اشتراکهای Web Push بهصورت جداگانه و از طریق API مربوط به خود مدیریت میشوند.
دریافت شناسههای کاربر (اختیاری)
متریکس برای هر کاربر یک metrixUserId تولید میکند و برای کاربران شناساییشده یک automationUserId نیز در نظر میگیرد. هر دو شناسه پس از ایجاد کاربر در سرورهای متریکس، از طریق یک Promise در دسترس قرار میگیرند.
شناسه کاربر متریکس
import { onMetrixUserIdReceived } from '@metrixorg/websdk';
onMetrixUserIdReceived().then((metrixUserId: string) => {
console.log('Metrix User ID:', metrixUserId);
});شناسه کاربر اتومیشن
import { onAutomationUserIdReceived } from '@metrixorg/websdk';
authorizeUser('CUSTOM_USER_ID');
onAutomationUserIdReceived().then((automationUserId: string) => {
console.log('Automation User ID:', automationUserId);
});onMetrixUserIdReceived(): Promise<string>
onAutomationUserIdReceived(): Promise<string>این Promiseها تا زمانی که SDK شناسه مربوطه را از سرور دریافت نکند، در حالت pending باقی میمانند. در بیشتر موارد، نیازی به دریافت و ذخیرهٔ این شناسهها نیست، مگر اینکه برای یکپارچهسازی با سرویس دیگری به آنها نیاز داشته باشید.
خلاصه API
| متد | توضیح |
|---|---|
authorizeUser(username) | کاربر فعلی را با یک شناسه یکتا شناسایی میکند. |
deauthorizeUser() | هویت کاربر فعلی را حذف کرده و SDK را به حالت ناشناس برمیگرداند. |
setFirstName(value, cb?) | نام کاربر را تنظیم میکند. |
setLastName(value, cb?) | نام خانوادگی کاربر را تنظیم میکند. |
setEmail(value, cb?) | ایمیل کاربر را تنظیم میکند. |
setHashedEmail(value, cb?) | ایمیل هششده (SHA-256) کاربر را تنظیم میکند. |
setPhoneNumber(value, cb?) | شماره تلفن کاربر را تنظیم میکند. |
setHashedPhoneNumber(value, cb?) | شماره تلفن هششده (SHA-256) کاربر را تنظیم میکند. |
setCountry(value, cb?) | کشور کاربر را تنظیم میکند. |
setCity(value, cb?) | شهر کاربر را تنظیم میکند. |
setRegion(value, cb?) | استان یا منطقه کاربر را تنظیم میکند. |
setLocality(value, cb?) | محله یا ناحیه کاربر را تنظیم میکند. |
setGender(value, cb?) | جنسیت کاربر را روی male، female یا other تنظیم میکند. |
setBirthday(value, cb?) | تاریخ تولد کاربر را بهصورت timestamp (عدد) تنظیم میکند. |
setFcmToken(value, cb?) | توکن FCM کاربر را تنظیم میکند. |
setCustomAttribute(key, value, cb?) | یک ویژگی سفارشی برای کاربر تنظیم میکند. |
onMetrixUserIdReceived() | یک Promise برمیگرداند که با شناسه کاربر متریکس resolve میشود. |
onAutomationUserIdReceived() | یک Promise برمیگرداند که با شناسه کاربر اتومیشن resolve میشود. |