Hướng dẫn nhanh về miền .NET cho khách hàng

Hãy làm theo các bước trong hướng dẫn bắt đầu nhanh này. Trong khoảng 10 phút, bạn sẽ có một ứng dụng bảng điều khiển .NET C# đơn giản giúp thực hiện các yêu cầu đối với API khách hàng thiết lập tự động.

Điều kiện tiên quyết

Để chạy tính năng khởi động nhanh này, bạn cần:

  • Tài khoản Google là một thành viên của tài khoản khách hàng thiết lập tự động. Xem Tài khoản khách hàng.
  • Visual Studio 2013 trở lên.
  • Truy cập Internet và trình duyệt web.

Bước 1: Bật API thiết lập tự động

  1. Sử dụng trình hướng dẫn này để tạo hoặc chọn một dự án trong Google Developers Console và tự động bật API. Nhấp vào Tiếp tục, sau đó nhấp vào Chuyển đến thông tin đăng nhập.
  2. Nhấp vào Hủy trên thông tin đăng nhập Tạo.
  3. Ở đầu trang, hãy chọn thẻ Màn hình xin phép bằng OAuth. Chọn Địa chỉ email, nhập Tên sản phẩm nếu bạn chưa đặt và nhấp vào nút Lưu.
  4. Chọn thẻ Thông tin xác thực, nhấp vào nút Tạo thông tin xác thực rồi chọn Mã ứng dụng khách OAuth.
  5. Chọn loại ứng dụng Other, nhập tên "Quickstart", rồi nhấp vào nút Create (Tạo).
  6. Nhấp vào OK để loại bỏ bảng Ứng dụng OAuth.
  7. Nhấp vào Tải xuống JSON.
  8. Di chuyển tệp vào thư mục đang làm việc và đổi tên client_secret.json.

Bước 2: Chuẩn bị dự án

  1. Tạo một dự án Ứng dụng bảng điều khiển .NET Core C# mới trong Visual Studio.
  2. Mở Trình quản lý gói, chọn nguồn gói nuget.org rồi thêm các gói sau:
    • Google.Apis.AndroidProvisioningPartner.v1
    • Google.Apis.Auth

Để tìm hiểu thêm, hãy đọc tài liệu Microsoft Cài đặt và sử dụng gói.

Bước 3: Thiết lập mẫu

  1. Kéo client_secret.json (tải xuống ở Bước 1) vào Trình khám phá giải pháp Visual Studio.
  2. Chọn client_secret.json, sau đó chuyển đến cửa sổ Properties (Thuộc tính) rồi đặt trường Copy to output directory (Sao chép vào thư mục đầu ra) thành Always copy (Luôn sao chép).
  3. Thay thế nội dung của Program.cs bằng mã sau:
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);
            }

        }
    }
}

Bước 4: Chạy mẫu

Để tạo và chạy mẫu, hãy nhấp vào Start (Bắt đầu) trên thanh công cụ Visual Studio.

Lần đầu tiên chạy ứng dụng, bạn cần cấp quyền truy cập:

  1. Ứng dụng sẽ tìm cách mở một thẻ mới trong trình duyệt mặc định. Nếu không thành công, hãy sao chép URL từ bảng điều khiển rồi mở trong trình duyệt. Nếu chưa đăng nhập vào Tài khoản Google của mình, bạn sẽ được nhắc đăng nhập. Nếu bạn đã đăng nhập vào nhiều tài khoản Google, trang sẽ nhắc bạn chọn một tài khoản để ủy quyền.
  2. Nhấp vào Chấp nhận.
  3. Đóng tab trình duyệt—ứng dụng sẽ tiếp tục chạy.

Ghi chú

  • Vì thư viện ứng dụng Google API lưu trữ dữ liệu ủy quyền trên hệ thống tệp, nên các lần khởi chạy tiếp theo sẽ không nhắc bạn ủy quyền.
  • Để đặt lại dữ liệu ủy quyền của ứng dụng, hãy xóa tệp ~/.credentials/zero-touch.quickstart.json rồi chạy lại ứng dụng.
  • Quy trình ủy quyền trong khởi động nhanh này lý tưởng cho ứng dụng dòng lệnh. Để tìm hiểu cách thêm ủy quyền vào ứng dụng web, hãy xem Sử dụng OAuth 2.0, Ứng dụng web (ASP.NET MVC).

Khắc phục sự cố

Dưới đây là một số điều phổ biến bạn sẽ muốn kiểm tra. Hãy cho chúng tôi biết bạn gặp vấn đề gì khi bắt đầu nhanh và chúng tôi sẽ tìm cách khắc phục.

  • Kiểm tra để đảm bảo rằng bạn ủy quyền cho các lệnh gọi API bằng cùng một Tài khoản Google dùng cho tài khoản khách hàng đăng ký thiết lập tự động. Hãy thử đăng nhập vào cổng thiết lập tự động bằng cách sử dụng cùng một Tài khoản Google để kiểm tra quyền truy cập của bạn.
  • Xác nhận rằng tài khoản đã chấp nhận Điều khoản dịch vụ mới nhất trong cổng thông tin. Xem Tài khoản khách hàng.

Tìm hiểu thêm