Использование API Google Sheets без аутентификации - PullRequest
1 голос
/ 11 июня 2019

Мне было поручено извлечь данные из Google Sheets и сохранить информацию в базе данных. Я просмотрел документацию, и меня немного смущает необходимость создания проекта облачной платформы. Листы, которые я пытаюсь прочитать, не имеют никакой аутентификации пользователя, доступ к ним есть у любого.

1 Ответ

0 голосов
/ 18 июня 2019

Если это открытый лист, то вы можете использовать открытый ключ API для доступа к нему. Google должен знать, кто использует их API, они делают это, требуя, чтобы вы создали проект на консоли разработчика Google и создали ключи для доступа даже к общедоступным данным.

namespace GoogleSamplecSharpSample.Sheetsv4.Auth
{
    /// <summary>
    /// When calling APIs that do not access private user data, you can use simple API keys. These keys are used to authenticate your 
    /// application for accounting purposes. The Google API Console documentation also describes API keys.
    /// https://support.google.com/cloud/answer/6158857
    /// </summary>
    public static class ApiKeyExample
    {
        /// <summary>
        /// Get a valid SheetsService for a public API Key.
        /// </summary>
        /// <param name="apiKey">API key from Google Developer console</param>
        /// <returns>SheetsService</returns>
        public static SheetsService GetService(string apiKey)
        {
            try
            {
                if (string.IsNullOrEmpty(apiKey))
                    throw new ArgumentNullException("api Key");

                return new SheetsService(new BaseClientService.Initializer()
                {
                    ApiKey = apiKey,
                    ApplicationName = string.Format("{0} API key example", System.Diagnostics.Process.GetCurrentProcess().ProcessName),
                });
            }
            catch (Exception ex)
            {
                throw new Exception("Failed to create new Sheets Service", ex);
            }
        }
    }
}

код извлечен из APIKey.cs

...