במדריך למתחילים הזה תלמדו איך, ותוך 10 דקות, תהיה לכם אפליקציה פשוטה של מסוף .NET C# ששולחת בקשות ל-API של ההרשמה דרך הארגון.
דרישות מוקדמות
כדי להפעיל את המדריך למתחילים, צריך:
- חשבון Google, החבר בחשבון הלקוח להרשמה דרך הארגון. למידע נוסף: חשבונות של לקוחות.
- Visual Studio 2013 ואילך.
- גישה לאינטרנט ולדפדפן אינטרנט.
שלב 1: הפעלת ה-API של ההרשמה דרך הארגון
- בעזרת האשף הזה אפשר ליצור או לבחור פרויקט ב-Google Developers Console ולהפעיל את ה-API באופן אוטומטי. לוחצים על Continue (המשך), ואז על Credentials .
- לוחצים על Cancel (ביטול) בקטע 'יצירת פרטי כניסה'.
- בחלק העליון של הדף בוחרים בכרטיסייה מסך הסכמה ל-OAuth. בוחרים כתובת אימייל, מזינים שם מוצר אם הוא עדיין לא מוגדר, ולוחצים על Save.
- בוחרים בכרטיסייה Credentials, לוחצים על הלחצן Create credentials ובוחרים באפשרות OAuth client ID.
- בוחרים את סוג האפליקציה אחר, מזינים את השם "מדריך למתחילים" ולוחצים על הלחצן יצירה.
- לוחצים על אישור כדי לסגור את החלונית לקוח OAuth.
- לוחצים על Download JSON.
- מעבירים את הקובץ לספריית העבודה ומשנים את השם שלו ל-
client_secret.json
.
שלב 2: הכנת הפרויקט
- יוצרים פרויקט Console Application חדש ב-NET .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: הרצת הדוגמה
כדי ליצור ולהפעיל את הדוגמה, לוחצים על
Start בסרגל הכלים של Visual Studio.בפעם הראשונה שמפעילים את האפליקציה, צריך להעניק הרשאת גישה:
- האפליקציה מנסה לפתוח כרטיסייה חדשה בדפדפן ברירת המחדל. אם הפעולה נכשלה, כדאי להעתיק את כתובת ה-URL מהמסוף ולפתוח אותה בדפדפן. אם עוד לא התחברת לחשבון Google, תוצג בקשה להתחבר. אם יש לך מספר חשבונות Google, בדף הזה תוצג בקשה לבחור חשבון להרשאה.
- לוחצים על אישור.
- סוגרים את כרטיסיית הדפדפן – האפליקציה ממשיכה לפעול.
הערות
- מאחר שספריית הלקוח של Google API מאחסנת נתוני הרשאה במערכת הקבצים, ההשקות הבאות לא יציגו בקשה להרשאה.
- כדי לאפס את נתוני ההרשאה של האפליקציה, צריך למחוק את הקובץ
~/.credentials/zero-touch.quickstart.json
ולהפעיל שוב את האפליקציה. - תהליך ההרשאה למתחילים יעזור לאפליקציה של שורת הפקודה. למידע נוסף על הוספת הרשאה לאפליקציית אינטרנט, אפשר לקרוא את המאמר שימוש ב-OAuth 2.0, אפליקציות אינטרנט (ASP.NET MVC).
פתרון בעיות
הנה כמה דברים נפוצים שכדאי לבדוק. מה הבעיה? נשמח לדעת איך זה עובד, ואנחנו נתקן את זה.
- חשוב לבדוק אם אישרת קריאות ל-API עם אותו חשבון Google ששייך לחשבון הלקוח שלך בהרשמה דרך הארגון. כדאי לנסות להיכנס לפורטל ההרשמה דרך הארגון באמצעות אותו חשבון Google כדי לבדוק את הגישה.
- יש לאשר שהחשבון אישר את התנאים וההגבלות העדכניים בפורטל. למידע נוסף, אפשר לקרוא את המאמר חשבונות לקוח.