Access Api создал таблицу Google в браузере - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь создать электронную таблицу с помощью электронных таблиц Google v4.Я создал новый сервер к серверу учетных данных JSON на консоли API.Кажется, все работает, но когда я пытаюсь получить доступ к сгенерированному URL, у меня появляется экран с запросом разрешения.Учетные данные были сгенерированы из моей учетной записи службы, связанной с моей учетной записью Google, поэтому я понимаю, что у меня уже есть это разрешение.Что я могу сделать, чтобы получить доступ к сгенерированному листу в браузере?Над моим кодом для создания электронной таблицы и экрана, который я получил.

открытый класс Program {static string [] Scopes = {SheetsService.Scope.Spreadsheets, SheetsService.Scope.Drive, SheetsService.Scope.DriveFile};статическая строка ApplicationName = "Google Sheets API .NET Quickstart";

    public static void Main(string[] args)
    {
        AppendData();
    }

    public static void AppendData()
    {           
        // the downloaded jsonn file with private key

        var credential = GoogleCredential.FromStream(new FileStream(Environment.CurrentDirectory + "/ApiKey/api_key.json", FileMode.Open)).CreateScoped(Scopes);

        var service = new SheetsService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = ApplicationName,

        });

        Spreadsheet requestBody = new Spreadsheet()
        {
            Properties = new SpreadsheetProperties()
            {
                Title = "Calculo Projeção",

            },

        };

        SpreadsheetsResource.CreateRequest request = service.Spreadsheets.Create(requestBody);
    }
}

enter image description here

1 Ответ

0 голосов
/ 28 мая 2018

Итак, GSheet, который вы создали, был создан с использованием сервисной учетной записи.Это означает, что служебная учетная запись является владельцем GSheet.

В зависимости от конечной цели и типа используемой учетной записи Google, у вас могут быть несколько вариантов здесь.

Если вы используете учетную запись G Suite , решение относительно простое.Это использовать олицетворение с учетной записью службы.Затем вы в основном используете учетную запись службы, чтобы выдать себя за пользователя для выполнения действий.Если вы создаете личную учетную запись при создании GSheet, владельцем будет ваша собственная учетная запись.В документации рассказывается об особенностях здесь.

Если вы НЕ используете учетную запись G Suite, но «нормальную» учетную запись Google, она становится немного болеесложно.Я могу вспомнить некоторые варианты здесь:

  1. Быстро и грязно: сначала создайте GSheet со своей личной учетной записью и предоставьте к ней доступ к служебной учетной записи.
  2. Создайте учетную запись службыGSheet и используйте API / библиотеку для предоставления доступа к вашей личной учетной записи.
  3. Создайте GSheet не с учетной записью службы, а с использованием OAuth и ваших собственных учетных данных.Есть несколько способов сделать это.Хорошая отправная точка для этого была бы здесь ...

Возможно, я пропустил один или два здесь, но вы должны понимать, что на самом деле происходит сейчас.

ПРИМЕЧАНИЕ: Одна очень важная вещь, которую вы должны принять во внимание.Если вы удаляете учетную запись службы, все элементы Google Диска (включая Листы, Документы, Формы и т. Д.) Удаляются без возможности их возврата.

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