close

**雲端主機知識分享**

-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 Apps for Education (今朝改稱為 G Suite for Education )供給各級學校使用 Google 的辦事(例:gmail、Calendar、雲端硬碟....)不單免費並且空間暫無窮制,已有使用者放上TB的資料到雲端。Google 的辦事一貫介面清爽操作簡單,良多的事都可以透過 web 管理介面(http://admin.google.com/ )往來來往完成,但有時會想要以程式來作為控制,接下來應當會有連續串以「程式」來對「Google 辦事」進行存取控制,今天就從最簡單的撈取已創立的使用者資料來做第一步。

贊成以後,程式才能從 Google 抓取該網域的利用者資訊

-----------------------------------------------------------------------

起頭安裝套件...



在安裝完套件以後 using Google.Apis.Auth.OAuth2;  應當能正常引入,不會出現錯誤的紅底線,但如果有這景遇,建議封閉專案再從新載入。

-4. 在「將憑證新增至您的專案/Add credentials to your project 」 頁面上按「勾銷」,中心的兩個下拉式選單不用管他

-4. 新增「辦理 NuGet 套件...」

最後在 Google API 經管員裡可以查看查詢的紀錄

0~1 不在本篇接頭規模,可參考(
https://www.youtube.com/user/eduatgoogle
https://www.youtube.com/watch?v=TyAvCZXD5K8
https://www.youtube.com/watch?v=yVqHekfCAVE 

-1. 開啟Visual Studio 我是用 2013 Professional 版
-2. 選 Visual C# -> Windows 桌面 -> 主控台應用程式 (人人可以依本身習慣的說話來用)
-3. 底下的名稱會跟預設的 Namespace 有關,在複製程式時要略微點竄一下

-5. 點選「OAuth 贊成畫面/ OAuth consent screen」頁籤 tab

但在我的 VS2013 版裡找不到這個屬性

-7. 修改 「client_secret.json」屬性,使其「Copy to Output Directory」欄位為「Copy Always」。

----------------------------------------------------------------------------------------------------------


-9. 程式第一次履行時,會跳出瀏覽器要求具有該網域 domain 的辦理者授權此項存取

~End

上述正常履行後,就會顯示你專屬的 OAuth 用戶端 ID  與 密鑰

using Google.Apis.Auth.OAuth2;
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



-9. 接著下載 JSON 的 Client ID
檔名可能為「client_secret_1073333333333-6666666l55555k67obu22222jai88888.apps.googleusercontent.com.json」建議變更為「client_secret.json」輕易後續在 .net 專案內利用


-7. 選擇「憑證/ Credentials」頁籤 -> 成立憑證 -> 選擇「OAuth 用戶端ID」

-6. 到場之前從 OAuth2 所得到的JSON檔案「client_secret.json」加入到專案裡



Step 2. 到 Google APIs 進行註冊(講明要以程式來進行存取控制),獲得憑證
-1. 連線到 https://console.developers.google.com/flows/enableapi?apiid=admin  進行註冊
=> 登入具有管理權限的帳號

-2. 底下兩個都要贊成才能繼續


-3. 建立 MyProject 專案,示意已啟用 API,點選「前往憑證」

Step 4:撰寫相對應的 Visual Studio C# .net 程式

故會泛起錯誤
=> 那就簡單的把檔案「client_secret.json」多複製一份到 ~\專案名稱\bin\Debug 目錄去,就解決了

-6. 輸入 email address(應當會自動帶出) 與 Product Name 產品名稱,再按下Save 貯存

IT委外|MIS外包|資訊委外|主機代管|伺服器代管|虛擬主機|郵件代管|郵件託管|雲端方案|雲端主機|網站代管|網站託管

arrow
arrow

    olgadw8kdb2 發表在 痞客邦 留言(0) 人氣()