راه‌اندازی چابک

مراحل راه‌اندازی چابک

برای راه‌اندازی چابک باید سه مرحله زیر را به ترتیب انجام دهید:

۱. مقداردهی اولیه

۲. تنظیم دریافت پوش‌نوتیفیکشن

۳. ثبت کاربر

نکته :‌ تمامی متدهایی که در این بخش بیان می‌شود باید تنها یک بار فراخوانی شود.

۱- مقدار‌دهی اولیه

برای ارتباط با سرور چابک، لازم است یک نمونه از کلاس chabokpush بسازید و آن را مقدار‌دهی کنید. برای مقدار‌دهی اولیه می‌بایست از طریق متد chabok اطلاعات حساب چابک و تنظیمات اولیه را وارد نمایید. ایجاد حساب در بخش پیش‌نیازها توضیح داده شده است. در صورت داشتن حساب چابک هم می‌توانید این مقادیر را از پنل بخش تنظیمات قسمت دسترسی‌ و توکن‌ها بردارید.

برای دریافت یا ارسال پیام از/به سرور چابک، لازم است یک نمونه از کلاس chabokpush بسازید و آن را مقداردهی نمایید. فراخوانی این متد فقط یکبار کافی است. به قطعه کد زیر دقت کنید :

const auth = {
  appId: 'APP_ID',
  apiKey: 'API_KEY',
  username: 'USERNAME',
  password: 'PASSWORD',
  devMode:true
}
const options = {
      silent: false,
      realtime: true
    };
this.chabok = new chabokpush(auth, options);

نکته : به طور کلی چابک شامل ۲ محیط سندباکس و عملیاتی می‌باشد. حساب‌های رایگان چابک (تا ۳۰ هزار کاربر) بر روی محیط سندباکس و حساب‌های پریمیوم روی عملیاتی قرار می‌گیرند. مقدار true برای ‌devMode باعث اتصال به محیط سندباکس و مقدار false باعث اتصال به محیط عملیاتی ما می‌شود.

تنظیمات اولیه
توضیحات پیش‌فرض نوع پارامتر
    Object [options]
فعال/غیرفعال سازی ارتباط آنی true Boolean [options.realtime]
دریافت مخفی پیام true Boolean [options.silent]

نکته : برای تغییر به محیط عملیاتی (devMode:false) باید از پنل بخش تنظیمات درخواست خود را ثبت نمایید تا پس از تایید، اطلاعات جدید حسابتان (AppId, APIKey, Username و Password) تعیین گردد.

۲- تعریف رسیور GCM برای دریافت پوش‌نوتیفیکیشن در اندروید

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

<receiver
     android:name="com.google.android.gms.gcm.GcmReceiver"
     android:enabled="true"
     android:exported="true"
     android:permission="com.google.android.c2dm.permission.SEND">
     <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <category android:name=" YOUR_APPLICATION_PACKAGE_ID" />
     </intent-filter>
</receiver>           

ایجاد دسترسی دریافت پوش در آی‌او‌اس

لطفا Push Notifications را در Setting > Capabilities فعال کنید .

و علامت Remote Notifications ها را در Setting > Capabilities > Background Modes چک کنید.

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

برای ارسال پوش‌نوتیفیکشن می‌توانید با متد زیر توکن‌ها را به چابک اضافه کنید:

this.chabok.setPushNotificationToken("TOKEN")

برای نمایش اعلان باید دسترسی‌های زیر را برای دستگاهتان در اندروید و آی‌اواس ایجاد کنید:

var PushNotification = require('react-native-push-notification');

PushNotification.configure({
            onRegister:  ({token}) => {
                if(token){
                    this.chabok.setPushNotificationToken(token)
                }
            },
            // (required) Called when a remote or local notification is opened or received
            onNotification: function(notification) {
                console.warn( 'NOTIFICATION:', notification );
                // required on iOS only (see fetchCompletionHandler docs: https://facebook.github.io/react-native/docs/pushnotificationios.html)
                notification.finish(PushNotificationIOS.FetchResult.NoData);
            },
            senderID: "GCM_SenderID", // ANDROID ONLY: (optional) GCM Sender ID.
            permissions: {
                alert: true,
                badge: true,
                sound: true
            },
            popInitialNotification: true,
            requestPermissions: true,
        });

۳- ثبت کاربر

با استفاده از متد register می‌توانید یک نام کاربری به هر کاربر اختصاص دهید. این متد شناسه کاربر را گرفته و کاربر را با آن شناسه روی سرور چابک ثبت‌نام می‌کند.

نکته : متد register باید فقط یک بار در طول اجرا اپلیکیشن فراخوانی شود.

chabok.register('USER_ID')

نکته امنیتی : مقدار USER_ID را هرگز به صورت خام در LocalStorage ذخیره نکنید، چون این مقدار شناسه معنادار می‌باشد و می‌توان با آن کاربر را روی چابک ثبت‌نام کرد. برای این منظور می‌توانید از متد زیر استفاده کنید که شناسه کاربر را به صورت رمزنگاری شده نگه‌می‌دارد:

chabok.getUserId()

نکته : متغیر USER_ID شناسه کاربر برای ثبت نام در چابک می‌باشد و ارسال پیام‌ به کاربران توسط همین شناسه‌ها و بدون استفاده از توکن یا شناسه گوشی، به سادگی امکان پذیر خواهد بود شناسه کاربری می تواند هر فیلد با ارزش و معنا‌دار برای کسب و کار شما باشد که کاربر خود را با آن شناسایی می‌کنید. شماره موبایل، کدملی، شماره حساب و یا ایمیل مثال‌هایی از شناسه‌های کاربری مناسب در موارد واقعی هستند.

نکته: کاراکترهای ‍#,+,*,\,/ و فاصله در USER_ID مجاز نیستند، همچنین طول این رشته نباید کمتر از ۳ و بیشتر از ۳۲ کاراکتر باشد.

نکته : در صورتی که مقداردهی اولیه و ثبت کاربر به درستی اعمال شده باشد، می‌توانید اطلاعات دستگاه متصل خود را در بخش مشترکین پنل چابک مشاهده کنید.

متد تایید ثبت کاربر

متد isRegistered یا همان تایید ثبت کاربر به شما این امکان را می‌دهد که بررسی کنید آیا عملیات ثبت‌نام انجام شده است یا خیر.

chabok.isRegistered()

متد حذف کاربر

برای حذف دستگاه کاربر از سرور چابک می‌توانید از متد زیر استفاده کنید:

chabok.unregister()

پس از اتمام این مراحل شما می‌توانید با فراخوانی این رویدادها از اتصال دستگاه به چابک اطمینان یابید.

نحوه صحیح پیاده سازی متد و رویدادها در قالب پروژه دمو پیاده سازی شده است.