ทำตามขั้นตอนในคู่มือเริ่มใช้งานฉบับย่อนี้ และในอีกประมาณ 10 นาทีคุณก็จะได้ แอปคอนโซล .NET C# แบบเรียบง่ายที่ส่งคำขอไปยังการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม API ของลูกค้า
ข้อกำหนดเบื้องต้น
หากต้องการเรียกใช้การเริ่มต้นอย่างรวดเร็วนี้ คุณต้องมีสิ่งต่อไปนี้
- บัญชี Google ซึ่งเป็นสมาชิกลูกค้าการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม ของคุณได้ ดูลูกค้า บัญชี
- Visual Studio 2013 ขึ้นไป
- เข้าถึงอินเทอร์เน็ตและเว็บเบราว์เซอร์
ขั้นตอนที่ 1: เปิด API การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม
- ใช้ this วิซาร์ดเพื่อสร้างหรือเลือกโปรเจ็กต์ใน Google Developers Console และ เปิด API โดยอัตโนมัติ คลิกต่อไป แล้วคลิกไปที่ข้อมูลเข้าสู่ระบบ
- คลิกยกเลิกในส่วนสร้างข้อมูลเข้าสู่ระบบ
- เลือกแท็บหน้าจอขอความยินยอม OAuth ที่ด้านบนของหน้า เลือก อีเมล ป้อนชื่อผลิตภัณฑ์หากยังไม่ได้ตั้งค่า และ คลิกปุ่มบันทึก
- เลือกแท็บข้อมูลเข้าสู่ระบบ แล้วคลิกสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกรหัสไคลเอ็นต์ OAuth
- เลือกประเภทแอปพลิเคชัน Other จากนั้นป้อนชื่อ "การเริ่มต้นอย่างรวดเร็ว" และคลิกสร้าง
- คลิกตกลงเพื่อปิดแผงไคลเอ็นต์ 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: เรียกใช้ตัวอย่าง
หากต้องการสร้างและเรียกใช้ตัวอย่าง ให้คลิก
เริ่มในแถบเครื่องมือ Visual Studioครั้งแรกที่เรียกใช้แอป คุณจะต้องให้สิทธิ์เข้าถึงดังนี้
- แอปจะพยายามเปิดแท็บใหม่ในเบราว์เซอร์เริ่มต้นของคุณ หากไม่สำเร็จ ให้คัดลอก URL จาก คอนโซลและเปิดในเบราว์เซอร์ หากคุณยังไม่ได้ลงชื่อเข้าใช้บัญชี Google ของคุณ แสดงว่า แจ้งให้เข้าสู่ระบบ หากคุณเข้าสู่ระบบบัญชี Google หลายบัญชี หน้าเว็บจะแจ้งให้เลือก บัญชีสำหรับการให้สิทธิ์
- คลิกยอมรับ
- ปิดแท็บเบราว์เซอร์ - แอปจะยังทำงานต่อไป
หมายเหตุ
- เนื่องจากไลบรารีของไคลเอ็นต์ Google API จัดเก็บข้อมูลการให้สิทธิ์ไว้ในระบบไฟล์ ดังนั้น ระบบจะไม่แสดงคำขอการให้สิทธิ์
- หากต้องการรีเซ็ตข้อมูลการให้สิทธิ์ของแอป ให้ลบ
~/.credentials/zero-touch.quickstart.json
ไฟล์และเรียกใช้แอปอีกครั้ง - ขั้นตอนการให้สิทธิ์ในการเริ่มต้นอย่างรวดเร็วนี้เหมาะสำหรับแอปบรรทัดคำสั่ง ดูวิธีเพิ่ม การให้สิทธิ์สำหรับเว็บแอป ให้ดูที่ ใช้ OAuth 2.0 กับเว็บแอปพลิเคชัน (ASP.NET MVC)
การแก้ปัญหา
ต่อไปนี้เป็นข้อมูลทั่วไปที่คุณควรตรวจสอบ แจ้งให้เราทราบถึงข้อผิดพลาดของการเริ่มต้นอย่างรวดเร็ว แล้วเราจะดำเนินการแก้ไข
- ตรวจสอบว่าคุณให้สิทธิ์การเรียก API ด้วยบัญชี Google เดียวกับที่เป็นสมาชิกของ บัญชีลูกค้าการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม ลองลงชื่อเข้าใช้พอร์ทัลการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มโดยใช้ บัญชี Google เดียวกันเพื่อทดสอบการเข้าถึง
- ยืนยันว่าบัญชียอมรับข้อกำหนดในการให้บริการล่าสุดใน พอร์ทัล โปรดดู บัญชีลูกค้า