رفتن به مطلب
  • 0

لاگین با اگانت گوگل یا تویتر یا فیسبوک ...


arastooms

سوال

سلام به همه اساتید و عزیزان 
برنامه های جدید برای لاگین وثبت کاربر از روشهای لاگین با گوگل یا فیسبوک یا ... استفاده میکنن
آموزش یا کتابخونه ای برای پیاده سازی این روش موجود هست؟
ممنون میشم راهنمایی بفرمایید1.png.01b261c805286c4478b4c4aaddd0828e.png

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

3 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام

به روش زیر عمل کنید

اول برید توی کنسول گوگل و یک ای دی برای ورود با اکانت گوگل بسازید(توی نت سرچ کنید آموزشش هست)

و بزارید جای مقدار متغیر Id

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

MaterialDialog

googleAccountManager

 

 

Sub Globals
	Dim id As String = "ssssssssssssss"
	Dim sign As SignGoogle
End Sub

Sub Login_Google_Click
	sign.Initialize(id,Me)
	
	Dim ls1 As List
	ls1 = sign.GetAccountList
	
	Dim Builder As MaterialDialogBuilder
	Builder.Initialize("GoogleList")
	Builder.Typeface(Cod.MyFont,Cod.MyFont)
	Dim si As MaterialSimpleListItem
	Builder.Title("یک حساب انتخاب کنید")
	

	For i = 0 To ls1.Size -1
	Dim cs As CSBuilder
	cs.Initialize.Size(13).Append(ls1.Get(i)).PopAll
	si.Initialize2("ic_account_circle_black_48dp", cs)
	si.BackgroundColor = Colors.White
	Builder.AddSimpleItem(si)
	Next
	
	Builder.Show

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

 

بعد یه کلاس هم بسازید با نام SignGoogle و این کدها رو بزارید جای کدهای توی کلاس

 


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 j As HttpJob
'	j.Initialize("getUserDetails", Me)
'	j.Download2(userInfoLink, Array As String("access_token",AccessToken))
'	
	
	Dim dl As PersianFastNetwork
	dl.initialize("dl").BuildGetQuery(userInfoLink,"getUserDetails") _
	.addParametrs("access_token",AccessToken).executRequesAsString
	Cod.ProgressDialog_Show2("درحال دریافت اطلاعات...",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

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 21 ساعت قبل، majid08 گفته است :

سلام

به روش زیر عمل کنید

اول برید توی کنسول گوگل و یک ای دی برای ورود با اکانت گوگل بسازید(توی نت سرچ کنید آموزشش هست)

و بزارید جای مقدار متغیر Id

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

MaterialDialog

googleAccountManager

 

سلام 

سپاس فراوان برای راهنمایی ارزنده و کامل شما دوست عزیز:hi:
امید وارم همیشه شاد و سلامت باشید و هر روز به علم شما افزوده بشه:53:

 

ممکنه کتابخونه هایی رو که فرمودید ضمیمه بفرمایید
البته کتابخونه های چناب شاهپیری رو که استفاده کردید خریدم منظورم کتابخونه های رایگان و لازم هست 
با تشکر فراوان 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...