Segui i passaggi descritti in questa guida rapida e in circa 10 minuti avrai a disposizione una semplice app per la console .NET C# che invia richieste all'API zero-touch per la registrazione dei clienti utilizzando un account di servizio.
Prerequisiti
Per eseguire questa guida rapida, devi avere:
- Un account di servizio collegato al tuo account cliente con registrazione zero-touch. Vedi la Guida introduttiva.
- 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 e poi su Vai alle credenziali.
- Imposta A quali dati accederai? su Dati applicazione.
- Fai clic su Avanti. Ti verrà chiesto di creare un account di servizio.
- Assegna un nome descrittivo al nome dell'account di servizio.
- Prendi nota dell'ID account di servizio, che sembra un indirizzo email, perché lo utilizzerai più tardi.
- 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**.
- Per **Tipo di chiave**, seleziona **JSON**.
- Fai clic su Crea per scaricare la chiave privata sul computer.
- Fai clic su **Chiudi**.
- Sposta il file nella tua directory di lavoro e rinominalo
service_account_key.json
.
Passaggio 2: prepara il progetto
- Crea un nuovo progetto Console Console .NET Core C# in Visual Studio.
- Apri il gestore di pacchetti, seleziona l'origine del pacchetto nuget.org e aggiungi
i seguenti pacchetti:
Google.Apis.AndroidProvisioningPartner.v1
Google.Apis.Auth
Per scoprire di più, leggi il documento di Microsoft Installare e utilizzare un pacchetto.
Passaggio 3: configura l'esempio
- Trascina il
service_account_key.json
scaricato al momento della creazione del tuo account di servizio in Esplora soluzioni di Studio. - Seleziona
service_account_key.json
, quindi 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 creare ed eseguire l'esempio, fai clic su
Avvia nella barra degli strumenti di Visual Studio.Note
- Evita di condividere il file
service_account_key.json
con altri. Fai attenzione a non includerla nei repository del codice sorgente. Puoi leggere ulteriori consigli sulla gestione dei secret dell'account di servizio.