מדריך למתחילים בנושא .NET ללקוחות

פועלים לפי השלבים במדריך למתחילים. אחרי כ-10 דקות, אפליקציה פשוטה של מסוף .NET C# ששולחת בקשות להרשמה דרך הארגון ב-Customer API.

דרישות מוקדמות

כדי להפעיל את המדריך למתחילים הזה, צריך:

  • חשבון Google שחבר בלקוח שלכם בהרשמה דרך הארגון חשבון. לעיון בקטע לקוח חשבונות Google.
  • Visual Studio מגרסה 2013 ואילך.
  • גישה לאינטרנט ולדפדפן אינטרנט.

שלב 1: מפעילים את ה-API להרשמה דרך הארגון

  1. אפשר להשתמש בקישור הזה באשף ליצירה או בחירה של פרויקט ב-Google Developers Console, להפעיל את ה-API באופן אוטומטי. לוחצים על המשך ואז על מעבר לפרטי הכניסה. .
  2. לוחצים על Cancel (ביטול) בדף Create Credentials.
  3. בחלק העליון של הדף, לוחצים על הכרטיסייה OAuth screen consent (מסך ההסכמה של OAuth). בוחרים את כתובת אימייל, מזינים את שם המוצר (אם הוא עדיין לא מוגדר). לוחצים על הלחצן שמירה.
  4. בוחרים בכרטיסייה Credentials ואז לוחצים על Create credentials. ובוחרים באפשרות OAuth Client ID (מזהה לקוח OAuth).
  5. בוחרים את סוג האפליקציה אחר ומזינים את שם האפליקציה 'מדריך למתחילים', ולוחצים על יצירה. לחצן.
  6. לוחצים על OK כדי לסגור את החלונית לקוח OAuth.
  7. לוחצים על הורדת JSON.
  8. צריך להעביר את הקובץ לספריית העבודה ולשנות את השם שלו ל-client_secret.json.

שלב 2: הכנת הפרויקט

  1. יוצרים פרויקט חדש של אפליקציית המסוף בפורמט .NET Core C# ב-Visual Studio.
  2. פותחים את מנהל החבילות, בוחרים את מקור החבילה nuget.org ומוסיפים את החבילות הבאות:
    • Google.Apis.AndroidProvisioningPartner.v1
    • Google.Apis.Auth

למידע נוסף, אפשר לקרוא את מסמך Microsoft התקנה ושימוש חבילה.

שלב 3: הגדרת הדוגמה

  1. גוררים את הקובץ client_secret.json (שהורדתם בשלב 1) ל-Visual Studio סייר הפתרונות.
  2. בוחרים באפשרות client_secret.json, עוברים לחלון 'מאפיינים' ומגדירים מעתיקים לספריית הפלט אל העתקה תמיד.
  3. מחליפים את התוכן של 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.

בפעם הראשונה שמפעילים את האפליקציה, צריך לתת הרשאה לגישה:

  1. האפליקציה תנסה לפתוח כרטיסייה חדשה בדפדפן ברירת המחדל. אם הפעולה נכשלת, מעתיקים את כתובת ה-URL במסוף ופותחים אותו בדפדפן. אם עדיין לא התחברתם לחשבון Google, סימן צריך להתחבר לחשבון. אם אתם מחוברים לכמה חשבונות Google, בדף תתבקשו לבחור חשבון עבור ההרשאה.
  2. לוחצים על אישור.
  3. סוגרים את הכרטיסייה בדפדפן – האפליקציה ממשיכה לפעול.

הערות

  • מכיוון שספריית הלקוח של Google API מאחסנת נתוני הרשאות במערכת הקבצים, הפעלות לא יבקשו ממך הרשאה.
  • כדי לאפס את נתוני ההרשאות של האפליקציה, מוחקים את ~/.credentials/zero-touch.quickstart.json ולהפעיל שוב את האפליקציה.
  • תהליך ההרשאה במדריך למתחילים הזה אידיאלי לאפליקציית שורת הפקודה. הוראות להוספה הרשאה לאפליקציית אינטרנט: באמצעות OAuth 2.0, אפליקציות אינטרנט (ASP.NET MVC).

פתרון בעיות

הנה כמה דברים נפוצים שכדאי לבדוק. אפשר לספר לנו מה השתבש במדריך למתחילים, וננסה לפתור את הבעיה.

  • צריך לוודא שאתם מאשרים קריאות ל-API דרך אותו חשבון Google שהוא חבר ב- חשבון לקוח בהרשמה דרך הארגון. כדאי לנסות להיכנס לפורטל ההרשמה דרך הארגון באמצעות באותו חשבון Google כדי לבדוק את הגישה.
  • לאשר שהחשבון אישר את התנאים וההגבלות העדכניים של הפורטל. ראו חשבונות לקוח.

מידע נוסף