c# - 使用 Graph API 和委派权限将成员添加到 Microsoft Teams
问题描述
我试图简单地将成员(已经在组织中)添加到特定的 Microsoft 团队。observerID 是我要添加的成员的 ID,而 teamID 是特定团队的 ID。我在启用 TeamMembers.ReadWrite.All 的情况下使用委派权限。我的代码如下所示:
string json = $@"
{{
""@odata.type"": ""#microsoft.graph.aadUserConversationMember"",
""roles"": [""member""],
""user@odata.bind"": ""https://graph.microsoft.com/beta/users({observerID})""
}}";
var body = new StringContent(json, Encoding.UTF8, "application/json");
Console.WriteLine("Add observer");
return await protectedApiCallHelper.CallWebApiAsync(WebApiUrlTeams + teamID + "/members", accessToken, body);
public async Task<JObject> CallWebApiAsync(string webApiUrl, string accessToken, HttpContent content)
{
if (!string.IsNullOrEmpty(accessToken))
{
var defaultRequestHeaders = HttpClient.DefaultRequestHeaders;
if (defaultRequestHeaders.Accept == null || !defaultRequestHeaders.Accept.Any(m => m.MediaType == "application/json"))
{
HttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}
defaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
HttpResponseMessage response = await HttpClient.PostAsync(webApiUrl, content);
if (response.IsSuccessStatusCode)
{
string json = await response.Content.ReadAsStringAsync();
JObject result = JsonConvert.DeserializeObject(json) as JObject;
return result;
}
}
return null;
}
我的问题是 http 调用失败,状态码为 400;'错误的请求'。我一次又一次地尝试找到我的电话的任何问题,但我似乎无法找到问题所在。当我 Console.WriteLine 用于正文的 json 时,它看起来像这样:
{
"odata.type": "#microsoft.graph.aadUserConversationMember",
"roles": ["member"],
"user@odata.bind": "https://graph.microsoft.com/beta/users(d52c2663-1c41-401b-8015-1216f0e68960)"
}
网址看起来像:“https://graph.microsoft.com/beta/teams/a9f9ac33-fba5-4ce2-9515-8c498c70af85/members”,当我尝试通过 Postman 拨打电话时,它仍然返回错误代码 400。
有没有人对可能出现的问题有任何见解?
解决方案
推荐阅读
- c# - 使事件每 n 次发生一次
- php - 如何将数组形式的 PHP 字符串转换为实际的数组
- nlp - 我可以使用 BERT 或 Doc2Vec 来比较可能不相关的单词列表吗?
- python - 神经网络保存权重
- apache-spark - 在 PySpark 中重新排列 RDD
- python - 使用 mplfinance 库使用外轴法绘制多个烛台图时,如何在烛台图内绘制成交量?
- r - 将索引列添加到列表 R 中的每个数据框
- javascript - 这种继承在 JavaScript 中是如何工作的?
- angular - 为什么点击时没有触发功能
- javascript - 如何编写带有重复单词的for循环的javascript?