لاگین با اکانت گوگل در بیسیک ۴ اندروید

دید تا حالا تو برنامه های متعددی به جای ثبت نام با کانت های گوگل و فیسبوک و غیره لاگین میشن ؟

امروز میخواهیم این روش رو به شما به راحت ترین شیوه بیان کنیم برای این کار باید طبق زیر عمل کنید :

و یک کclass هم دارین به این صورت :

✨ نکات مهم:

• کد آماده و تست‌شده (3 قطعه‌کد)

• کار با کتابخانه‌های: JavaObject، JSON، ToastMessageShow

📚 کتابخانه‌های مورد نیاز:

JavaObject، JSON، ToastMessageShow

(از مسیر Libraries در محیط B4A تیک بزنید.)

🚀 نحوه استفاده:

مراحل را گام‌به‌گام اجرا کنید؛ کدهای هر بخش در ادامه همین صفحه آمده است.

دسته‌بندیدوره‌های آموزشی
تاریخ انتشار۲۷ شهریور ۱۴۰۵ - ۰۱:۵۷
تعداد بازدید۱
تعداد فروش۰
فرمت تحویلفایل دانلودی (بعد از پرداخت آنی فعال می‌شود)
پشتیبانیتیکت پشتیبانی در پنل کاربری

ویژگی‌های کلیدی

  • آموزش گام‌به‌گام فارسی
  • کاملاً رایگان
  • کد تست‌شده با توضیح فارسی
  • کتابخانه: JavaObject، JSON، ToastMessageShow

هنوز نظری ثبت نشده است. اولین نفر باشید!

برای ثبت نظر وارد شوید. (ثبت نظر پس از خرید فعال می‌شود)

B4A — کد نمونه رایگان این تکه‌کد را می‌توانید مستقیم در پروژه بیسیک۴اندروید استفاده کنید
#Region  Project Attributes 
	#ApplicationLabel: B4A Example
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region
#Extends: android.support.v7.app.AppCompatActivity
Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.

End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
	Dim id As String = ""
	Dim sign As SignGoogle
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	'Activity.LoadLayout("Layout1")


		sign.Initialize(id,Me)
		Dim ls1 As List
		ls1 = sign.GetAccountList
	
		Dim Builder As MaterialDialogBuilder
		Builder.Initialize("GoogleList")
		Dim si As MaterialSimpleListItem
		Builder.Title("یک حساب انتخاب کنید")
	
		If ls1.Size < 1 Then
		
		Else
			For i = 0 To ls1.Size -1
				Dim cs As CSBuilder
				cs.Initialize.Size(13).Append(ls1.Get(i)).PopAll
				si.Initialize(Null, cs)
				si.BackgroundColor = Colors.White
				Builder.AddSimpleItem(si)
			Next
	
			Builder.Show
		End If

End Sub
Sub GoogleList_SimpleItemSelected (Dialog As MaterialDialog, Position As Int, Item As MaterialSimpleListItem)

	ToastMessageShow(Item.Content, False)
	sign.SelectAccount(Item.Content)
	sign.RequestSign("UserLogin")
	Dialog.Dismiss
End Sub
Sub UserLogin(Data As Map,Login As Boolean)


	Log(Data.Get("id"))
	Log(Data.Get("email"))
	Log(Data.Get("name"))
	Log(Data.Get("family_name"))
	Log(Data.Get("picture"))

End Sub
Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Private Sub Class_Globals
	Private clientId As String : clientId = "" 'enter client id here
	'Private clientSecret As String : clientSecret = "" 'client secret here
	Private AccessToken As String
	Private userInfoLink As String : userInfoLink = "https://www.googleapis.com/oauth2/v1/userinfo"
	Private m_GoogleAccountManager As clsB_GoogleAccountManager
	Private modules As Object
	Private evt As String
	Private l_GoogleAccounts() As Object
End Sub

'Step 1
Public Sub Initialize(sClientID As String,module As Object)
	
	clientId		= sClientID
	m_GoogleAccountManager.Initialize(0)
	modules			= module
	
End Sub

'Step 3
Sub SelectAccount(AccountName As String)
	
	For Each l_joAccount As JavaObject In l_GoogleAccounts
		If l_joAccount.GetField ("name") = AccountName Then
			Exit
		End If
	Next
	
	Dim l_sScopes As String = "email profile"
	Dim l_sAuthTokenType As String = $"oauth2:${l_sScopes}"$
	Dim l_sAccessToken As String = m_GoogleAccountManager.getAuthToken_foreground(l_joAccount,l_sAuthTokenType)
	
	AccessToken = l_sAccessToken
	
End Sub

'Step 2
Sub GetAccountList As List
	
	l_GoogleAccounts = m_GoogleAccountManager.getAccountsByType("com.google")
	
	If l_GoogleAccounts.Length = 0 Then Return Null
	
	Dim l_sAccountNames As List : l_sAccountNames.Initialize
	
	For Each l_joAccount As JavaObject In l_GoogleAccounts
		Dim l_sAccountName As String = l_joAccount.GetField ("name")
		l_sAccountNames.Add(l_sAccountName)
	Next
	
	Return l_sAccountNames
	
End Sub

'Step 4
Sub RequestSign(Event As String)
	
	evt = Event
	

	Dim dl As PersianFastNetwork
	dl.initialize("dl").BuildGetQuery(userInfoLink,"getUserDetails") _
	.addParametrs("access_token",AccessToken).executRequesAsString
	ProgressDialogShow2("درحال دریافت اطلاعات...",False)


	
End Sub
Sub dl_onGetStringOkListener(Result As String , Tag As String )
	ProgressDialogHide
	If Result <> Null Then
		Select Tag
			
			Case "GetAccessToken"
				
				Dim JSON As JSONParser
				Dim map1 As Map
				JSON.Initialize(Result)
				map1=JSON.NextObject
				AccessToken=map1.Get("access_token")
				CallSub3(modules,evt,map1,False)
					
			Case "getUserDetails"
				Dim JSON As JSONParser
				Dim map1 As Map
				JSON.Initialize(Result)
				map1 = JSON.NextObject
				CallSub3(modules,evt,map1,True)
			
		End Select
	End If
End Sub

AddPermission(android.permission.GET_ACCOUNTS)
AddPermission(android.permission.USE_CREDENTIALS)
AddPermission(android.permission.INTERNET)
تخصصی بیسیک۴اندرویدسورس‌کد آمادهآموزش گام‌به‌گامکتابخانه‌های کاربردیتحویل آنی بعد از پرداختپشتیبانی واقعی ۲۴/۷بروزرسانی رایگان+۵۹۸ محصول فعال+۳ فروش موفق