[英]Create a space with Google Chat REST API
我們有一個程序使用服務帳戶來管理 Google Chat 中的各種內容。
現在,我們需要使用 Google Chat REST API (spaces.create) 創建一個新空間。 我們已經加入了開發人員預覽計划,因為此端點尚未普遍可用。
據我們了解,此端點無法通過服務帳戶調用,因此我們想問您......我們可以使用“域委托”自動調用此端點嗎? 如果是,如何?
我們總是希望使用服務帳戶,因為它不可能向用戶顯示登錄提示。
我們啟用了域委托,但該端點始終返回狀態 403。(我們正在為 .NET Core 使用 Google.Apis 庫
using Google.Apis.Auth.OAuth2;
var credential = GoogleCredential.FromFile("key.json")
.CreateScoped("https://www.googleapis.com/auth/chat.spaces.create")
.CreateWithUser("service-account-email@project.iam.gserviceaccount.com");
var token = await credential.UnderlyingCredential.GetAccessTokenForRequestAsync();
HttpRequestMessage request = new(HttpMethod.Post, "https://chat.googleapis.com/v1/spaces");
request.Headers.Authorization = new("Bearer", token);
var payload = @"
{
""name"": ""testspace-1"",
""spaceType"": ""SPACE"",
""singleUserBotDm"": true,
""displayName"": ""Test Space""
}
";
request.Content = new StringContent(payload, System.Text.Encoding.UTF8, "application/json");
HttpClient client = new();
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
如果您查看文檔Auth
您會注意到它統計支持服務帳戶授權。 如果您是開發者預覽計划的一部分
我詢問您的代碼的原因是我上次嘗試此代碼是在不久前。 google .net 客戶端庫未生成預覽中的方法。
所以雖然它可能有效。 您可能遇到的問題是客戶端庫在加載時沒有您需要的方法,這意味着您必須自己編寫對端點的調用。
如果事實確實如此,請告訴我您是否有任何問題將它們放在一起,我可能會提供幫助。
你的代碼有錯誤
.CreateWithUser("service-account-email@project.iam.gserviceaccount.com");
CreateWithUser
中的電子郵件應該是您域中您希望將服務帳戶細化為的用戶。 不是服務帳戶電子郵件地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.