Краткое руководство по .NET для клиентов

Выполните действия, описанные в этом кратком руководстве, и примерно через 10 минут у вас будет простое консольное приложение .NET C#, которое отправляет запросы к клиентскому API автоматической регистрации.

Предпосылки

Для запуска этого краткого руководства вам необходимо:

  • Учетная запись Google, которая является частью вашей учетной записи клиента с автоматической регистрацией. См. Счета клиентов .
  • Visual Studio 2013 или более поздней версии.
  • Доступ к Интернету и веб-браузер.

Шаг 1. Включите API автоматической регистрации

  1. Используйте этот мастер для создания или выбора проекта в Google Developers Console и автоматического включения API. Нажмите «Продолжить» , затем «Перейти к учетным данным» .
  2. Нажмите «Отмена» в разделе «Создать учетные данные».
  3. В верхней части страницы выберите вкладку экрана согласия OAuth . Выберите адрес электронной почты , введите название продукта, если оно еще не задано, и нажмите кнопку «Сохранить» .
  4. Выберите вкладку «Учетные данные» , нажмите кнопку «Создать учетные данные» и выберите «Идентификатор клиента OAuth ».
  5. Выберите тип приложения «Другое» , введите имя «Быстрый старт» и нажмите кнопку «Создать» .
  6. Нажмите OK , чтобы закрыть панель клиента OAuth .
  7. Нажмите Загрузить JSON .
  8. Переместите файл в свой рабочий каталог и переименуйте его client_secret.json .

Шаг 2: Подготовьте проект

  1. Создайте новый проект консольного приложения .NET Core C# в Visual Studio.
  2. Откройте диспетчер пакетов, выберите источник пакета nuget.org и добавьте следующие пакеты:
    • Google.Apis.AndroidProvisioningPartner.v1
    • Google.Apis.Auth

Чтобы узнать больше, прочтите документ Microsoft «Установка и использование пакета» .

Шаг 3: Настройте образец

  1. Перетащите client_secret.json (загруженный на шаге 1) в обозреватель решений Visual Studio.
  2. Выберите client_secret.json , а затем перейдите в окно «Свойства» и установите для поля «Копировать в выходной каталог» значение « Всегда копировать» .
  3. Замените содержимое Program.cs следующим кодом:
using Google.Apis.AndroidProvisioningPartner.v1;
using Google.Apis.AndroidProvisioningPartner.v1.Data;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;

namespace ZeroTouchCustomerQuickstart
{
    class Program
    {
        // A single scope is used for the zero-touch enrollment customer API.
        static readonly string[] Scopes =
            { "https://www.googleapis.com/auth/androidworkzerotouchemm" };
        static string ApplicationName = "Zero-touch Enrollment .NET Quickstart";

        static void Main(string[] args)
        {
            UserCredential credential;

            // Ask the user to authorize the request using their Google Account
            // in their browser.
            using (var stream =
                new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials/zero-touch.quickstart.json");

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.FromStream(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create a zero-touch enrollment API service endpoint.
            var service = new AndroidProvisioningPartnerService(new BaseClientService.Initializer
            {
                HttpClientInitializer = credential,
                ApplicationName = ApplicationName
            });

            // Get the customer's account. Because a customer might have more
            // than one, limit the results to the first account found.
            CustomersResource.ListRequest accountRequest = service.Customers.List();
            accountRequest.PageSize = 1;
            CustomerListCustomersResponse accountResponse = accountRequest.Execute();
            if (accountResponse.Customers.Count == 0)
            {
                // No accounts found for the user. Confirm the Google Account
                // that authorizes the request can access the zero-touch portal.
                Console.WriteLine("No zero-touch enrollment account found.");
                Environment.Exit(-1);
            }
            Company customer = accountResponse.Customers[0];
            var customerAccount = String.Format("customers/{0}", customer.CompanyId);


            // Send an API request to list all the DPCs available.
            CustomersResource.DpcsResource.ListRequest request = service.Customers.Dpcs.
                List(customerAccount);
            CustomerListDpcsResponse response = request.Execute();

            // Print out the details of each DPC.
            IList<Dpc> dpcs = response.Dpcs;
            foreach (Dpc dpcApp in dpcs)
            {
                Console.WriteLine("Name:{0}  APK:{1}",
                                  dpcApp.DpcName,
                                  dpcApp.PackageName);
            }

        }
    }
}

Шаг 4. Запустите образец

Чтобы построить и запустить пример, щелкните Start на панели инструментов Visual Studio.

При первом запуске приложения необходимо авторизовать доступ:

  1. Приложение пытается открыть новую вкладку в браузере по умолчанию. Если это не помогло, скопируйте URL-адрес из консоли и откройте его в браузере. Если вы еще не вошли в свою учетную запись Google, вам будет предложено войти в систему. Если вы вошли в несколько учетных записей Google, на странице будет предложено выбрать учетную запись для авторизации.
  2. Нажмите Принять .
  3. Закройте вкладку браузера — приложение продолжит работу.

Примечания

  • Поскольку клиентская библиотека Google API хранит данные авторизации в файловой системе, последующие запуски не запрашивают авторизацию.
  • Чтобы сбросить данные авторизации приложения, удалите файл ~/.credentials/zero-touch.quickstart.json и снова запустите приложение.
  • Поток авторизации в этом кратком руководстве идеально подходит для приложения командной строки. Чтобы узнать, как добавить авторизацию в веб-приложение, см . Использование OAuth 2.0, веб-приложения (ASP.NET MVC) .

Поиск неисправностей

Вот некоторые общие вещи, которые вы захотите проверить. Сообщите нам, что пошло не так с кратким запуском, и мы постараемся это исправить.

  • Убедитесь, что вы разрешаете вызовы API с помощью той же учетной записи Google, которая является членом вашей учетной записи клиента автоматической регистрации. Попробуйте войти на портал автоматической регистрации, используя ту же учетную запись Google, чтобы проверить доступ.
  • Подтвердите, что учетная запись приняла последние Условия обслуживания на портале . См. Счета клиентов .

Узнать больше