Выполните действия, описанные в этом кратком руководстве, и примерно через 10 минут у вас будет простое консольное приложение .NET C#, которое отправляет запросы к клиентскому API автоматической регистрации.
Предварительные условия
Чтобы запустить это краткое руководство, вам необходимо:
- Учетная запись Google, являющаяся частью вашей учетной записи клиента с автоматической регистрацией. См. Счета клиентов .
- Visual Studio 2013 или более поздней версии.
- Доступ к Интернету и веб-браузеру.
Шаг 1. Включите API автоматической регистрации.
- Используйте этот мастер , чтобы создать или выбрать проект в консоли разработчиков Google и автоматически включить API. Нажмите «Продолжить» , затем «Перейти к учетным данным» .
- Нажмите «Отмена» в разделе «Создать учетные данные».
- В верхней части страницы выберите вкладку экрана согласия OAuth . Выберите адрес электронной почты , введите название продукта , если оно еще не задано, и нажмите кнопку «Сохранить» .
- Выберите вкладку «Учетные данные» , нажмите кнопку «Создать учетные данные» и выберите идентификатор клиента OAuth .
- Выберите тип приложения «Другое» , введите имя «Быстрый старт» и нажмите кнопку «Создать» .
- Нажмите «ОК» , чтобы закрыть панель клиента OAuth .
- Нажмите Скачать JSON .
- Переместите файл в свой рабочий каталог и переименуйте его
client_secret.json
.
Шаг 2: Подготовьте проект
- Создайте новый проект консольного приложения .NET Core C# в Visual Studio.
- Откройте диспетчер пакетов, выберите источник пакета nuget.org и добавьте следующие пакеты:
-
Google.Apis.AndroidProvisioningPartner.v1
-
Google.Apis.Auth
-
Чтобы узнать больше, прочтите документ Microsoft «Установка и использование пакета» .
Шаг 3. Настройте образец
- Перетащите
client_secret.json
(скачанный на шаге 1) в обозреватель решений Visual Studio. - Выберите
client_secret.json
, а затем перейдите в окно «Свойства» и установите для поля «Копировать в выходной каталог» значение «Всегда копировать» . - Замените содержимое
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.При первом запуске приложения вам необходимо авторизовать доступ:
- Приложение пытается открыть новую вкладку в браузере по умолчанию. Если это не помогло, скопируйте URL-адрес из консоли и откройте его в браузере. Если вы еще не вошли в свою учетную запись Google, вам будет предложено войти в систему. Если вы вошли в несколько учетных записей Google, на странице вам будет предложено выбрать учетную запись для авторизации.
- Нажмите Принять .
- Закройте вкладку браузера — приложение продолжит работу.
Примечания
- Поскольку клиентская библиотека Google API хранит данные авторизации в файловой системе, при последующих запусках авторизация не будет запрашиваться.
- Чтобы сбросить данные авторизации приложения, удалите файл
~/.credentials/zero-touch.quickstart.json
и запустите приложение еще раз. - Процесс авторизации, описанный в этом кратком руководстве, идеально подходит для приложений командной строки. Чтобы узнать, как добавить авторизацию в веб-приложение, см. раздел Использование OAuth 2.0, веб-приложения (ASP.NET MVC) .
Поиск неисправностей
Вот некоторые общие вещи, которые вы захотите проверить. Сообщите нам, что пошло не так с кратким руководством, и мы постараемся это исправить.
- Убедитесь, что вы разрешаете вызовы API с помощью той же учетной записи Google, которая является членом вашей учетной записи клиента с автоматической регистрацией. Попробуйте войти на портал автоматической регистрации, используя ту же учетную запись Google, чтобы проверить доступ.
- Подтвердите, что учетная запись приняла последнюю версию Условий обслуживания на портале . См. Счета клиентов .