ورود با بازار (login) و حافظه‌ی درون برنامه‌ای بازار

 

مقدمه

با استفاده از این کتابخانه بدون نیاز به پیاده‌سازی in App Login، همیشه به کاربر خود دسترسی داشته باشید؛ دیگر نیازی به ارسال پیامک یا ایمیل برای authenticate کردن کاربر ندارید؛ همه چیز را به بازار بسپارید.

همچنین می‌توانید برای همه‌ی کاربران خود یک User Id یکتا برای همه‌ی حالات ( پاک کردن دیتای برنامه، تعویض دستگاه و …) در نظر گرفته یا از فضای ذخیره‌سازی کمینه‌ی بازار (‌Bazaar in App Storage) برای کاربران خود استفاده کنید.

در مرحله‌ی اول، بازار به ازای هرکاربر برنامه/بازی، به شما یک user Id یکتا و پایدار می‌دهد. در آینده شما می‌توانید با دریافت permission از کاربر، به اطلاعات متفاوتی دسترسی داشته باشید.  

برای اطلاعات بیشتر به این صفحه مراجعه کنید. 

برای شروع کار با BazaarAuth ، نیاز دارید تا Dependency آن را به فایل build.gradle اضافه کنید:

dependencies {

    implementation "com.farsitel.bazaar:auth:[latest_version]"

}

 

برای ثبت‌نام کاربر-login- یک object  از BazaarSignIn بسازید:

val signInOption = BazaarSignInOptions.Builder(SignInOption.DEFAULT_SIGN_IN).build()



client = BazaarSignIn.getClient(

    context,

    signInOption

)

 

بعد از ساختن این object  می‌توانید به‌ وسیله‌ی روش زیر، کاربر را به صفحه‌ی لاگین با بازار هدایت کنید: 

val intent = client.getSignInIntent()

startActivityForResult(intent, REQ_CODE)

 

سپس برای parse کردن دیتا از بازار و دریافت اطلاعات کاربر میتوانید از روش زیر در onActivityResult استفاده کنید : 

val account = BazaarSignIn.getSignedInAccountFromIntent(intent)

 

در صورتی که کاربر اجازه‌ی دسترسی به برنامه‌ی شما را داده باشد، account خالی – null- نیست و شما می‌توانید دیتا را از روی مدل account بخوانید.

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

BazaarSignIn.getLastSignedInAccount(this, this,BazaarSingInCallback { response ->

        val account = response?.data

        updateUI(account)

 })

 

برای دریافت اطلاعات با روش sync، از شیوه‌ی زیر استفاده کنید:

val accountResponse = BazaarSignIn.getLastSignedInAccountSync(this, this)

 

نکته : امکان استفاده از روش بالا در main thread  وجود ندارد.  

برای نمایش دکمه‌ی Bazaar login از view زیر در XML خود استفاده کنید.

<com.farsitel.bazaar.auth.widget.LoginButton

    android:id="@+id/loginButton"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    app:size="NORMAL" />

 

App size می‌تواند NORMAL  یا BIG باشد.

مشخصات دکمه‌ی Bazaar login (ورود با بازار):  

 

 

 

Login with Bazaar button attributes
Color code: #0EA960

Button text: “ورود با بازار”

Button text color: #FFFFFF

Curvature: 5dp

Button hight: 48db

order: 1dp #09663A

Bazaar Logo size: 30dp

 

نکنه: شما می‌توانید بر اساس فضا و طراحی gameplay برنامه یا بازی خود، دکمه‌ی دلخواه خود را داشته باشید.

حافظه‌ی درون برنامه‌ای بازار:

با «حافظه‌ی درون برنامه‌ای بازار» بدون نیاز به تهیه‌ی سرور و صرف هزینه‌های فنی، ۳ کیلوبایت فضای اختصاصی برای هر کاربر برنامه‌ی خود در اختیار دارید؛ در نتیجه شما می‌توانید امتیاز‌ها، ایمیل، مرحله و … کاربر خود را روی سرورهای ابری بازار ذخیره کرده و به آسانی بازخوانی کنید.

با «حافظه‌ی درون برنامه‌ای بازار»، تجربه‌ی کاربری در حالت‌هایی مثل پاک کردن و نصب مجدد برنامه، تعویض دستگاه و … ، حفظ می‌شود.

برای save کردن اطلاعات، از روش زیر استفاده کنید:

BazaarStorage.saveData(

                context = this@MainActivity,

                owner = this@MainActivity,

                data = "saved data".toByteArray(),

                callback = BazaarStorageCallback { savedResponse ->

                    dataTV.text = savedResponse?.data?.toReadableString()

                }

            )

 

برای تبدیل ByteArray response  به string از تابع toReadableString استفاده کنید.

برای دریافت اطلاعات save شده، شیوه‌ی زیر را بکار بگیرید:

BazaarStorage.getSavedData(

                context = this@MainActivity,

                owner = this@MainActivity,

                callback = BazaarStorageCallback { response ->

                    dataTV.text = response?.data?.toReadableString()

                }

            )

 

دقت کنید که برای جلوگیری از phishing  و دزدی اطلاعات، با روش زیر از نصب بودن نسخه‌ی اصلی بازار در گوشی کاربر مطمئن شوید:

BazaarClientProxy.isBazaarInstalledOnDevice(context)

 

برای اطمینان از نصب بودن نسخه‌ای از بازار روی دستگاه کاربر که login in App Storage را پشتیبانی می‌کند، از روش زیر استفاده کنید:

BazaarClientProxy.isNeededToUpdateBazaar(context)

 

در صورتی که کاربر برنامه‌ی بازار را نصب نداشته باشد، شیوه‌ی زیر را بکار بگیرید:

BazaarClientProxy.showInstallBazaarView(context)

 

اگر نسخه‌ی برنامه‌ی بازار کاربر، نیاز به بروزرسانی دارد، از روش زیر استفاده کنید:

BazaarClientProxy.showUpdateBazaarView(context)

 

برای اطلاعات بیشتر به این صفحه مراجعه کنید.