我已經在VB.NET中做了一個小程序,基本上,與Google雲端硬盤同步一個目錄,然後它獲取共享鏈接,併爲此創建一個快捷方式文件上傳的文件。所有的工作都很好,很好。現在,當我開始使用不同帳戶進行遊戲時,我的問題就出現了,而不僅僅是我正在運行測試的帳戶。 我發現,當我使用此代碼驗證:谷歌驅動器:上傳到一個不同的帳戶比活動的
Dim clientS As ClientSecrets = New ClientSecrets()
clientS.ClientId = "ClientID"
clientS.ClientSecret = "MySecret"
Dim scopes As IList(Of String) = New List(Of String)()
scopes.Add(DriveService.Scope.Drive)
scopes.Add(DriveService.Scope.DriveFile)
Dim credentials As UserCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(clientS, scopes, Me.UserEmail, System.Threading.CancellationToken.None, New FileDataStore(Me.TokensFolderPath)).Result
Dim initializer As BaseClientService.Initializer = New BaseClientService.Initializer()
initializer.HttpClientInitializer = credentials
initializer.ApplicationName = "Drive API Test"
Me.service = New DriveService(initializer)
第一次,這將打開一個瀏覽器窗口,並要求用戶進行權限查看,編輯,...您的文件。然後它會創建一個令牌以避免在下次應用程序運行時詢問。 問題是,即使我在代碼上指定了一個userEmail,它也不在乎。它只會打開瀏覽器,並以您在該時刻處於活動狀態的任何帳戶詢問權限,因此,創建的令牌將屬於該帳戶,而不屬於我指定的帳戶。
我做錯了什麼或有什麼缺失?或者,也許API只是應該這樣工作,它總是將文件上傳到您正在迅速登錄的帳戶。
你在哪裏指定USEREMAIL?另外,你可以重新格式化你的代碼,所以我們不需要像往常那樣滾動一下嗎? –
FileDataStore存儲與您正在發送的任何Me.UserEmail相關的身份驗證。您需要將其更改或創建自己的Idatastore實現來移動您的令牌。 – DaImTo
對不起,我編輯了代碼,因此它更清晰。 userEmail在證書聲明處傳遞。但我認爲這不重要,我放在那裏 – Nadyn