Segui i passaggi di questa guida rapida e in circa 10 minuti avrai una semplice app della console .NET C# che invia richieste alla registrazione zero-touch l'API del cliente utilizzando un account di servizio.
Prerequisiti
Per eseguire questa guida rapida, devi disporre di:
- Un account di servizio collegato al tuo account cliente con registrazione zero-touch. Consulta Iniziare.
- Visual Studio 2013 o versioni successive.
- Accesso a internet e a un browser web.
Passaggio 1: attiva l'API di registrazione zero-touch
- Utilizza questa procedura guidata per creare o selezionare un progetto in Google Developers Console e attivare automaticamente l'API. Fai clic su Continua, quindi su Vai alle credenziali.
- Imposta A quali dati accederai? su Dati dell'applicazione.
- Fai clic su Avanti. Viene richiesto di creare un servizio .
- Assegna un nome descrittivo a Nome account di servizio.
- Prendi nota dell'ID account di servizio (assomiglia a un indirizzo email) perché in un secondo momento.
- Imposta Ruolo su Account di servizio > Utente account di servizio.
- Fai clic su Fine per completare la creazione dell'account di servizio.
- Fai clic sull'indirizzo email dell'account di servizio che hai creato.
- Fai clic su **Chiavi**.
- Fai clic su **Aggiungi chiave**, quindi su **Crea nuova chiave**.
- In **Tipo di chiave**, seleziona **JSON**.
- Fai clic su Crea e la chiave privata viene scaricata sul computer.
- Fai clic su **Chiudi**.
- Sposta il file nella directory di lavoro e rinominalo
service_account_key.json
.
Passaggio 2: prepara il progetto
- Crea un nuovo progetto Console Application (Applicazione console) C# .NET Core in Visual Studio.
- Apri il gestore dei pacchetti, seleziona la sorgente del pacchetto nuget.org e aggiungi
i seguenti pacchetti:
Google.Apis.AndroidProvisioningPartner.v1
Google.Apis.Auth
Per saperne di più, leggi il documento Microsoft Installare e utilizzare un pacchetto.
Passaggio 3: configura l'anteprima
- Trascina il file
service_account_key.json
scaricato durante la creazione dell'account di servizio in Esplora soluzioni di Visual Studio. - Seleziona
service_account_key.json
, poi vai alla finestra Proprietà e imposta il campo Copia nella directory di output su Copia sempre. - Sostituisci i contenuti di
Program.cs
con il seguente codice:
using Google.Apis.AndroidProvisioningPartner.v1; using Google.Apis.AndroidProvisioningPartner.v1.Data; using Google.Apis.Auth.OAuth2; using Google.Apis.Services; 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) { GoogleCredential credential; // Authenticate using the service account key credential = GoogleCredential.FromFile("service_account_key.json") .CreateScoped(Scopes); // 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); } } } }
Passaggio 4: esegui l'esempio
Per compilare ed eseguire il sample, fai clic su
Avvia nella barra degli strumenti di Visual Studio.Note
- Evita di condividere il file
service_account_key.json
con altri. Attenzione per non includerlo nei repository di codice sorgente. Puoi leggere ulteriori consigli su per la gestione dei secret degli account di servizio.