簡體   English   中英

使用 Google Chat REST API 創建空間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM