背景:
我正在尝试在MS Teams的现有频道中添加一个新的网站选项卡,然后获取新创建的选项卡的ID。
问题:
我能够创建新的选项卡,但是我从Graph API收到一个“BadRequest”异常:
消息:值不能为空。参数名称:entity
有趣的是,该选项卡已经被创建并且在MS Teams中正确的团队和频道中可见,但我无法以任何方式获取它的ID。
我的代码:
var tab = await _graphClient.Teams[teamId].Channels[channelId].Tabs.Request().WithMaxRetry(3).AddAsync(
new TeamsTab
{
DisplayName = "New Tab",
AdditionalData = new Dictionary<string, object>
{
["teamsApp@odata.bind"] =
$"{_teamsFactory.GraphV1Endpoint}/appCatalogs/teamsApps/com.microsoft.teamspace.tab.web"
},
Configuration = new TeamsTabConfiguration
{
EntityId = null,
WebsiteUrl = $"{_appUrl}/1",
ContentUrl = $"{_appUrl}/1",
RemoveUrl = null,
}
}
);
就像我之前写的那样,这段代码能够正常工作并创建选项卡,但是在tab变量被赋值之前,GraphServiceClient会抛出一个异常。
当我尝试在Graph Explorer中获取选项卡列表时:
https://graph.microsoft.com/v1.0/teams/{teamid}/channels/{channelid}/tabs
我收到了一个错误响应:
{
"error": {
"code": "InternalServerError",
"message": "Failed to execute request.",
"innerError": {
"request-id": "a03654e8-37a7-4fbb-8052-6a1b11721234",
"date": "2020-02-24T15:11:54"
}
}
}