قابلیت‌های مدیر - رایانش

هدف از این مستند درک قابلیت‌هاییست که با اطلاعات مدیر (Master Token) به آنها دسترسی دارید. حفظ اطلاعات و دسترسی مدیر بر عهده شماست و نباید توکن مدیر را به هیچ وجه به کلاینت خود انتقال دهید. زیرا این دسترسی امکانات نامحدود در تغییر و حتی حذف اطلاعات شما دارد و به هیچ وجه نباید توسط کاربران قابل مشاهده باشد. کاربرد اصلی این دسترسی وقتی است که شما قصد اتصال به بکتوری از طریق سرور دلخواه خود را دارید. سرویس رایانش نیز یک نمونه از این سرور دلخواه است. سرویس رایانش به طور پیشفرض همه درخواست‌ها را با دسترسی مدیر می‌دهد. بنابر این هر درخواستی که به سرویس لیدربورد و یا پایگاه داده و یا هر سرویس دیگری در بکتوری از طریق سرویس رایانش بدهید، هرگز با پیام 403 که به معنای عدم دسترسی است، مواجه نخواهید شد. زیرا شما دسترسی مدیر (بالاترین سطح دسترسی ممکن به داده‌های خود) را دارید.

پیش‌نیازها

  1. در صورتی که با سرویس کاربران آشنایی ندارید، به معرفی سرویس کاربران مراجعه کنید.
  2. اگر با فرآیند امنیتی ورود کاربران در بکتوری آشنایی ندارید، به فرآیند امنیتی ورود کاربران مراجعه کنید.
  3. در صورتی که ایده‌ای راجع به سرویس Cloud Code ندارید، به معرفی سرویس رایانش مراجعه کنید.
  4. در صورتی که هنوز با SDK سرویس رایانش برای اتصال به سایر سرویس‌ها آشنایی ندارید، یا آن را راه اندازی نکرده اید، به راه اندازی SDK سرویس رایانش مراجعه کنید.

گرفتن اطلاعات کاربر با استفاده از Id

با استفاده از این واسط می‌توانید اطلاعات یک کاربر را با استفاده از ID ‌آن کاربر به دست آورید. برای این منظور باید درخواست را با توکن دسترسی کاربری ارسال کنید که اطلاعات وی را می‌خواهید (با ورود و گرفتن توکن دسترسی).

Backtory.Users.getByUserId("<user-Id>", {
    success: function(userInfo) {
        context.log("username = ", userInfo.username);
    },
    error: function(error) {
        // Execute any logic that should take place if the getByUserId fails.
    }
});

انواع پاسخ‌هایی که از این سرویس ممکن است دریافت کنید به صورت جدول زیر است که در حالت اجرای موفقیت آمیز کالبک مربوط به success صدا زده می شود و در غیر این صورت محتویات خطا در شیء error قابل دسترسی می باشد.

Tables Description
200-OK Successful
401-Unauthorized Incorrect access token
404-Not Found Your Authentication-Id is wrong
500-Internal Server Error Data access was unsuccessful
503-Service Unavailable Your service is disabled

نمونه‌ای از پاسخ دریافت شده برای userInfo از این سرویس در حالتی که درخواست موفقیت آمیز اجرا شده و کالبک success صدا زده شده است به صورت زیر می باشد.

{
  "instanceId": "INSTANCE-ID",
  "userId": "USER-ID",
  "username": "USERNAME",
  "firstName": "FIRSTNAME",
  "lastName": "LASTNAME",
  "email": "a.b@c",
  "phoneNumber": "12345678",
  "guest": false,
  "active": true
}

گرفتن اطلاعات کاربر با استفاده از نام کاربری

با استفاده از این واسط می‌توانید اطلاعات یک کاربر را با استفاده از نام کاربری ‌آن کاربر به دست آورید. برای این منظور باید درخواست را با توکن دسترسی ادمین ارسال کنید تا بتوانید به هر کاربر دلخواهی که می‌خواهید دست یابید.

Backtory.Users.getByUserName("<username>", {
    success: function(userInfo) {
        context.log("userId = ", userInfo.userId);
    },
    error: function(error) {
        // Execute any logic that should take place if the getByUserName fails.
    }
});

انواع پاسخ‌هایی که از این سرویس ممکن است دریافت کنید به صورت جدول زیر است که در حالت اجرای موفقیت آمیز کالبک مربوط به success صدا زده می شود و در غیر این صورت محتویات خطا در شیء error قابل دسترسی می باشد.

Tables Description
200-OK Successful
401-Unauthorized Incorrect access token
404-Not Found Your Authentication-Id is wrong
500-Internal Server Error Data access was unsuccessful
503-Service Unavailable Your service is disabled

نمونه‌ای از پاسخ دریافت شده برای userInfo از این سرویس در حالتی که درخواست موفقیت آمیز اجرا شده و کالبک success صدا زده شده است به صورت زیر می باشد.

{
  "instanceId": "INSTANCE-ID",
  "userId": "USER-ID",
  "username": "USERNAME",
  "firstName": "FIRSTNAME",
  "lastName": "LASTNAME",
  "email": "a.b@c",
  "phoneNumber": "12345678",
  "guest": false,
  "active": true
}

به روز رسانی کاربر

این سرویس به شما امکان می‌دهد که اطلاعات کاربری یک کاربر را به روز رسانی کنید. این اطلاعات شامل نام کاربری، نام، نام خانوادگی، ایمیل و شماره تلفن است. برای تغییر همه کاربران خود بایستی دسترسی مدیر (با استفاده از ورود مدیر و گرفتن توکن دسترسی) داشته باشید.

var userInfo = {
   "username": "NEW-USERNAME",
   "firstName": "NEW-FIRSTNAME",
   "lastName": "NEW-LASTNAME"
};

Backtory.Users.update("<user-Id>", userInfo, {
    success: function(userInfo) {
        context.log("userId = ", userInfo.userId);
    },
    error: function(error) {
        // Execute any logic that should take place if the getByUserName fails.
    }
});

انواع پاسخ‌هایی که از این سرویس ممکن است دریافت کنید به صورت جدول زیر است که در حالت اجرای موفقیت آمیز کالبک مربوط به success صدا زده می شود و در غیر این صورت محتویات خطا در شیء error قابل دسترسی می باشد.

Tables Description
200-OK Successful
401-Unauthorized Incorrect access token
404-Not Found Your Authentication-Id is wrong
500-Internal Server Error Data access was unsuccessful
503-Service Unavailable Your service is disabled

نمونه‌ای از پاسخ دریافت شده برای userInfo از این سرویس در حالتی که درخواست موفقیت آمیز اجرا شده و کالبک success صدا زده شده است به صورت زیر می باشد.

{
  "instanceId": "INSTANCE-ID",
  "userId": "USER-ID",
  "username": "USERNAME",
  "firstName": "FIRSTNAME",
  "lastName": "LASTNAME",
  "email": "a.b@c",
  "phoneNumber": "12345678",
  "guest": false,
  "active": true
}

جستجو

با استفاده از این سرویس می‌توانید به جستجو در کاربران خود بپردازید. در این سرویس، واژه یا زیرواژه‌ای به عنوان کلمه جستجو گرفته می‌شود و با استفاده از آن در نام، نام خانوادگی، نام کاربری، و ایمیل کاربران جستجو می‌شود. در پاسخ این جستجو، لیست کاربرانی که کلمه جستجو در یکی از چهار ویژگی فوق آن‌ها وجود دارد، برگردانده می‌شود. در این سرویس امکان دریافت اطلاعات به شکل صفحه‌بندی (paging) شده نیز وجود دارد که در درخواست مثال آمده است. لازم به ذکر است برای استفاده از این سرویس نیاز به توکن دسترسی مدیر دارید که با استفاده از واسط ورود مدیر قابل انجام است. بطور مثال در صورت جستجوی کلمه “ez”، اگر در یکی از ویژگی‌های کاربر بطور مثال “reza” باشد، آن کاربر به عنوان نتیجه جستجو برگردانده می‌شود.

Backtory.Users.search("<word>", <page>, <page-size>, {
    success: function(userInfoList) {

    },
    error: function(error) {
        // Execute any logic that should take place if the search fails.
    }
});

انواع پاسخ‌هایی که از این سرویس ممکن است دریافت کنید به صورت جدول زیر است که در حالت اجرای موفقیت آمیز کالبک مربوط به success صدا زده می شود و در غیر این صورت محتویات خطا در شیء error قابل دسترسی می باشد.

Tables Description
200-OK Successful
417-Expectation failed InstanceId or ClientId does not match
500-Internal Server Error Data access was unsuccessful
503-Service Unavailable Your service is disabled

نمونه‌ای از پاسخ دریافت شده برای userInfoList از این سرویس در حالتی که درخواست موفقیت آمیز اجرا شده و کالبک success صدا زده شده است به صورت زیر می باشد.

[
   {
     "instanceId": "INSTANCE-ID",
     "userId": "USER-ID",
     "username": "USERNAME",
     "firstName": "FIRSTNAME",
     "lastName": "LASTNAME",
     "email": "a.b@c",
     "phoneNumber": "12345678",
     "guest": false,
     "active": true
   }
]

گرفتن اطلاعات لیستی از کاربران

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

var userIds = ["<user-Id-1>", "<user-Id-2>"];
Backtory.Users.getByUserIds(userIds , {
    success: function(userInfoList) {
    },
    error: function(error) {
        // Execute any logic that should take place if the getByUserId fails.
    }
});

انواع پاسخ‌هایی که از این سرویس ممکن است دریافت کنید به صورت جدول زیر است که در حالت اجرای موفقیت آمیز کالبک مربوط به success صدا زده می شود و در غیر این صورت محتویات خطا در شیء error قابل دسترسی می باشد.

Tables Description
200-OK Successful
417-Expectation failed InstanceId or ClientId does not match
500-Internal Server Error Data access was unsuccessful
503-Service Unavailable Your service is disabled

نمونه‌ای از پاسخ دریافت شده برای userInfoList از این سرویس در حالتی که درخواست موفقیت آمیز اجرا شده و کالبک success صدا زده شده است به صورت زیر می باشد.

[
    {
      "instanceId": "INSTANCE-ID",
      "userId": "USER-ID",
      "username": "USERNAME",
      "firstName": "FIRSTNAME",
      "lastName": "LASTNAME",
      "email": "a.b@c",
      "phoneNumber": "12345678",
      "guest": false,
      "active": true
    }
]