**雲端主機知識分享**
-8. 選擇「其他 / Other」並賜與名稱
-8.插入程式碼
Reference:
-5. 右上角搜索 Google ,然後找到「Google.Apis.Admin.Directory_v1」 套件並安裝
2. 到 Google APIs 進行註冊(表明要以程式來進行存取節制),取得憑證
3. 撰寫相對應的 Visual Studio C# .net 程式
大致上的步調為:
0. 先申請、啟用 G Suite for Education 並設定好DNS相對應的參數。
1. 能以管理者身份進入http://admin.google.com/ 來經管。
贊成以後,程式才能從 Google 抓取該網域的利用者資訊 ----------------------------------------------------------------------- 起頭安裝套件... -4. 在「將憑證新增至您的專案/Add credentials to your project 」 頁面上按「勾銷」,中心的兩個下拉式選單不用管他 -4. 新增「辦理 NuGet 套件...」 最後在 Google API 經管員裡可以查看查詢的紀錄 0~1 不在本篇接頭規模,可參考( -1. 開啟Visual Studio 我是用 2013 Professional 版 -5. 點選「OAuth 贊成畫面/ OAuth consent screen」頁籤 tab Google Apps for Education (今朝改稱為 G Suite for Education )供給各級學校使用 Google 的辦事(例:gmail、Calendar、雲端硬碟....)不單免費並且空間暫無窮制,已有使用者放上TB的資料到雲端。Google 的辦事一貫介面清爽操作簡單,良多的事都可以透過 web 管理介面(http://admin.google.com/ )往來來往完成,但有時會想要以程式來作為控制,接下來應當會有連續串以「程式」來對「Google 辦事」進行存取控制,今天就從最簡單的撈取已創立的使用者資料來做第一步。
在安裝完套件以後 using Google.Apis.Auth.OAuth2; 應當能正常引入,不會出現錯誤的紅底線,但如果有這景遇,建議封閉專案再從新載入。
https://www.youtube.com/user/eduatgoogle
https://www.youtube.com/watch?v=TyAvCZXD5K8
https://www.youtube.com/watch?v=yVqHekfCAVE
-2. 選 Visual C# -> Windows 桌面 -> 主控台應用程式 (人人可以依本身習慣的說話來用)
-3. 底下的名稱會跟預設的 Namespace 有關,在複製程式時要略微點竄一下
-7. 修改 「client_secret.json」屬性,使其「Copy to Output Directory」欄位為「Copy Always」。 ---------------------------------------------------------------------------------------------------------- ~End 上述正常履行後,就會顯示你專屬的 OAuth 用戶端 ID 與 密鑰 using Google.Apis.Auth.OAuth2; -9. 接著下載 JSON 的 Client ID -7. 選擇「憑證/ Credentials」頁籤 -> 成立憑證 -> 選擇「OAuth 用戶端ID」 -6. 到場之前從 OAuth2 所得到的JSON檔案「client_secret.json」加入到專案裡 Step 2. 到 Google APIs 進行註冊(講明要以程式來進行存取控制),獲得憑證 Step 4:撰寫相對應的 Visual Studio C# .net 程式 故會泛起錯誤 -6. 輸入 email address(應當會自動帶出) 與 Product Name 產品名稱,再按下Save 貯存
-9. 程式第一次履行時,會跳出瀏覽器要求具有該網域 domain 的辦理者授權此項存取
using Google.Apis.Admin.Directory.directory_v1;
using Google.Apis.Admin.Directory.directory_v1.Data;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Googleapi
{
class Program
{
// If modifying these scopes, delete your previously saved credentials
// at ~/.credentials/admin-directory_v1-dotnet-quickstart.json
// 存放在 C:\Users\your_username\Documents\.credentials\admin-directory_v1-dotnet-quickstart.json
static string[] Scopes = { DirectoryService.Scope.AdminDirectoryUserReadonly };
static string ApplicationName = "Directory API .NET Quickstart";
static void Main(string[] args)
{
UserCredential credential;
using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read)) // 開啟從 Google OAuth 得到的ID跟私鑰
{
string credPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); // 抓取使用者目錄 C:\Users\your_username\Documents\
credPath = Path.Combine(credPath, ".credentials/admin-directory_v1-dotnet-quickstart.json"); // 合併路徑名稱
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets, Scopes, "user",
CancellationToken.None, new FileDataStore(credPath, true)).Result; // 會將 access_token 相關資訊寫到此檔案中
Console.WriteLine("Credential file saved to: " + credPath);
}
// 經由過程憑證驗證後,以 Directory Service 來存取利用者相幹資訊
// Create Directory API service.
var service = new DirectoryService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
// 界說要抓取的內容
// Define parameters of request.
UsersResource.ListRequest request = service.Users.List();
request.Customer = "my_customer";
request.MaxResults = 20; // 抓取筆數
request.OrderBy = UsersResource.ListRequest.OrderByEnum.Email; // 以 email 作為排序
// List users.
IList<User> users = request.Execute().UsersValue; // 履行抓取 google 上的利用者資訊
Console.WriteLine("Users:");
if (users != null && users.Count > 0) // 判定是不是為空值、NULL
{
foreach (var userItem in users) // 印出 email 及 FullName
{
Console.WriteLine("{0} ({1})", userItem.PrimaryEmail,
userItem.Name.FullName);
}
}
else // 空值時顯示毛病訊息
{
Console.WriteLine("No users found.");
}
Console.Read(); // 期待任一鍵竣事程式
} // EOF Main
} // EOF Class Program
} // EOF Namespace
檔名可能為「client_secret_1073333333333-6666666l55555k67obu22222jai88888.apps.googleusercontent.com.json」建議變更為「client_secret.json」輕易後續在 .net 專案內利用
-1. 連線到 https://console.developers.google.com/flows/enableapi?apiid=admin 進行註冊
=> 登入具有管理權限的帳號
-2. 底下兩個都要贊成才能繼續
-3. 建立 MyProject 專案,示意已啟用 API,點選「前往憑證」
=> 那就簡單的把檔案「client_secret.json」多複製一份到 ~\專案名稱\bin\Debug 目錄去,就解決了