我正在嘗試使用 .net 核心控制臺應用程式中的服務帳戶訪問谷歌表。我可以從我的個人帳戶閱讀谷歌表。它沒有問題。但是嘗試在組織域中訪問谷歌作業表,它說無權訪問作業表。我已經與服務帳戶共享了谷歌表。
GoogleCredential credential;
using(var stream = new FileStream("client_secret.json",FileMode.Open,FileAccess.Read))
{
credential = GoogleCredential.FromStream(stream).CreateScoped(Scopes);
}
service = new SheetsService(new Google.Apis.Services.BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
var range = $"{Sheet}!A:F";
var request = service.Spreadsheets.Values.Get(SpreadsheetId, range);
var response = request.Execute();
但它會在執行時引發權限錯誤。有沒有辦法使用組織域進行訪問?是不是因為組織限制用戶只能訪問組織域中的檔案
uj5u.com熱心網友回復:
您收到訪問權限的原因是由于組織的政策,您自己也說了原因。
服務帳戶是一種由應用程式而非個人使用的特殊帳戶,與用戶帳戶不同,它們不屬于您的 Google Workspace 域。
一種方法是使用服務帳戶來委派域范圍的權限。這是什么意思?好吧,本質上,您最終會模擬域中有權訪問作業表的用戶,并通過服務帳戶在該用戶處執行請求。
但是,此服務帳戶的訪問權限需要由域管理員授予,而不是由普通用戶授予。可以在此處找到執行此操作的步驟。
參考
將域范圍的權限委派給您的服務帳戶;
將 OAuth 2.0 用于服務器到服務器應用程式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/339389.html
標籤:C# 谷歌表格 .net核心 google-sheets-api
