Google Drive Api загружает файлы в неверный аккаунт Google Drive - PullRequest
0 голосов
/ 01 июня 2018

Я реализовал загрузку файлов в Google Drive в своем проекте.Ниже приведен json-файл учетных данных (ключ клиента и секретный ключ клиента), который я скачал с Google.

{
"web": {
    "client_id": "cid",
    "project_id": "projectid",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_secret": "cse"
}
}

Ниже приведен код json-файла маркера доступа, сгенерированного на моем компьютере с использованием этого кода.

  using (var stream = new FileStream("drive.json", FileMode.Open, FileAccess.Read))
        {
            string credPath = System.Environment.GetFolderPath(
                System.Environment.SpecialFolder.Personal);
            credPath = System.IO.Path.Combine(credPath, ".credentials/accesstoken.json");

            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                 Scopes,
                "a.b@gmail.com",
                CancellationToken.None,
                new FileDataStore(credPath, true)).Result;
            Console.WriteLine("Credential file saved to: " + credPath);
        }
        //create Drive API service.
        Google.Apis.Drive.v3.DriveService service = new Google.Apis.Drive.v3.DriveService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = "DriveProjectName",
        });

Функциональность загрузки файлов работает хорошо, но когда я копирую свой код с одного ПК на другой ПК и копирую код моего проекта, если на этом компьютере вошла какая-либо другая учетная запись gmail (например, xz@gmail.com)ПК, файл загружается на диск этой учетной записи вместо моего Google Drive.

Почему это происходит?Эта проблема связана с какими-либо разрешениями на диске Google или определением областей?Какие-либо конкретные настройки, которые необходимо выполнить в Google Диске или в моем коде, которые мне не хватает?В моем коде я определил следующие области действия:

public static string[] Scopes =
{
     Google.Apis.Drive.v3.DriveService.Scope.Drive, 
     Google.Apis.Drive.v3.DriveService.Scope.DriveFile, 
     Google.Apis.Drive.v3.DriveService.Scope.DriveMetadata, 
     Google.Apis.Drive.v3.DriveService.Scope.DriveAppdata
};

Есть предложения или идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...