通过 Microsoft Teams Graph 将文件上传到频道 Api
File Upload to Channel via Microsoft Teams Graph Api
我一直在尝试使用图表 Api 将文件上传到频道。我可以使用请求 https://graph.microsoft.com:443/v1.0/me/drive/root:/fileName:/content
成功上传到我的个人 OneDrive
但是我无法上传到频道。我尝试了很多组合,但总是收到无效请求。以下是我尝试过的一些请求:
我也试过各种方式输入频道ID:
xx:xxxxxxxxxxxxxxxxxxxxxxxxx@thread.tacv2
xxxxxxxxxxxxxxxxxxxxxxxxx@thread.tacv2
xx:xxxxxxxxxxxxxxxxxxxxxxxxx
我发现我做错了什么。对于遇到问题的任何其他人,您必须获取支持该频道的文件夹 ID。这是 C# 中的示例。
// Get the folder of the channel (driveItem)
var item = await graphClient.Teams[teamID].Channels[channelID].FilesFolder
.Request().GetAsync();
// Do the put request
var uploadRequest = graphClient
//.Me.Drive.Root
.Groups[teamID]
.Drive
.Items[item.Id]
.ItemWithPath(file.FileName)
.Content.Request()
.PutAsync<DriveItem>(file.OpenReadStream());
我在这个话题上花了好几个小时。您的解决方案对我不起作用,但我终于完成了。为了拯救其他人,我也想分享我的解决方案:
我用它来获取频道的驱动器项目:
var request = graphClient.Teams[teamId].Channels[channelId].FilesFolder.Request().GetAsync();
然后上传:
var uploadRequest = graphClient.Drives[driveItem.ParentReference.DriveId].Items[driveItem.Id].ItemWithPath("testfile.pdf").Content.Request()
.PutAsync<DriveItem>(System.IO.File.OpenRead(filePath));
我的应用程序使用客户端密码进行身份验证。也许这会有所作为。
我一直在尝试使用图表 Api 将文件上传到频道。我可以使用请求 https://graph.microsoft.com:443/v1.0/me/drive/root:/fileName:/content
成功上传到我的个人 OneDrive但是我无法上传到频道。我尝试了很多组合,但总是收到无效请求。以下是我尝试过的一些请求:
我也试过各种方式输入频道ID:
xx:xxxxxxxxxxxxxxxxxxxxxxxxx@thread.tacv2 xxxxxxxxxxxxxxxxxxxxxxxxx@thread.tacv2 xx:xxxxxxxxxxxxxxxxxxxxxxxxx
我发现我做错了什么。对于遇到问题的任何其他人,您必须获取支持该频道的文件夹 ID。这是 C# 中的示例。
// Get the folder of the channel (driveItem)
var item = await graphClient.Teams[teamID].Channels[channelID].FilesFolder
.Request().GetAsync();
// Do the put request
var uploadRequest = graphClient
//.Me.Drive.Root
.Groups[teamID]
.Drive
.Items[item.Id]
.ItemWithPath(file.FileName)
.Content.Request()
.PutAsync<DriveItem>(file.OpenReadStream());
我在这个话题上花了好几个小时。您的解决方案对我不起作用,但我终于完成了。为了拯救其他人,我也想分享我的解决方案:
我用它来获取频道的驱动器项目:
var request = graphClient.Teams[teamId].Channels[channelId].FilesFolder.Request().GetAsync();
然后上传:
var uploadRequest = graphClient.Drives[driveItem.ParentReference.DriveId].Items[driveItem.Id].ItemWithPath("testfile.pdf").Content.Request()
.PutAsync<DriveItem>(System.IO.File.OpenRead(filePath));
我的应用程序使用客户端密码进行身份验证。也许这会有所作为。