如何解决“很抱歉,此文件已被删除或移动”使用C#代码上传文件后在Microsoft Teams中打开文件时
我一直在面对这个问题
对不起,此文件已被删除或移动
当我尝试在Microsoft Teams中打开文件(word,PPT,Excel等)时,该文件已使用Microsoft Graph API成功使用c#代码上传。我可以从Microsoft Teams下载上载的文件,但在Microsoft Teams本身看不到。另外,我能够手动将同一文件上传到频道,并且已成功在Microsoft Teams中打开。
代码:
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
List<ChatMessageAttachment> chatMessageAttachments = new List<ChatMessageAttachment>();
Guid guid = Guid.NewGuid();
chatMessage.Body.Content = chatMessage.Body.Content +
"<attachment id=" + "\"" + guid.ToString() + "\"" + "></attachment>";
ChatMessageAttachment chatMessageAttachment = new ChatMessageAttachment();
chatMessageAttachment.Id = guid.ToString();
chatMessageAttachment.Name = file.name;
chatMessageAttachment.ContentUrl = "https://{tenant}.sharepoint.com/sites/testTeam/Shared%20Documents/General" + "/" + file.name;
chatMessageAttachment.ContentType = "reference";
chatMessageAttachments.Add(chatMessageAttachment);
await graphClient.Teams[currentTeam.Id].Channels[currentChannel.Id].Messages
.Request()
.AddAsync(chatMessage);
有人可以在上传文件时建议代码中出了什么问题吗?
解决方法
最后,问题已解决。这是我们分配给chatMessageAttachment变量的GUID的问题,该GUID应该是SharePoint中上载文件的GUID,而不是新创建的文件。
这样,我就可以在Microsoft Teams本身中查看上载的文件。
更新代码:
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
var chatMessage = new ChatMessage
{
Body = new ItemBody
{
ContentType = BodyType.Html,Content = "Hello World"
}
};
List<ChatMessageAttachment> chatMessageAttachments = new List<ChatMessageAttachment>();
using (var clientContext = new ClientContext(sharePointWebUrl))
{
clientContext.Credentials = new SharePointOnlineCredentials(userName,passWord);
clientContext.Load(clientContext.Web);
clientContext.ExecuteQuery();
Microsoft.SharePoint.Client.Web web = clientContext.Web;
Microsoft.SharePoint.Client.File spfile = clientContext.Web.GetFileByServerRelativeUrl(web.ServerRelativeUrl + "Shared%20Documents/General" + "/" + file.name);
clientContext.Load(spfile);
clientContext.ExecuteQuery();
Microsoft.SharePoint.Client.ListItem item = spfile.ListItemAllFields;
clientContext.Load(item);
clientContext.ExecuteQuery();
string fileGuid = item["UniqueId"].ToString();
chatMessage.Body.Content = chatMessage.Body.Content +
"<attachment id=" + "\"" + fileGuid + "\"" + "></attachment>";
ChatMessageAttachment chatMessageAttachment = new ChatMessageAttachment();
chatMessageAttachment.Id = fileGuid;
chatMessageAttachment.Name = file.name;
chatMessageAttachment.ContentUrl = "https://{tenant}.sharepoint.com/sites/testTeam/Shared%20Documents/General" + "/" + file.name;
chatMessageAttachment.ContentType = "reference";
chatMessageAttachments.Add(chatMessageAttachment);
chatMessage.Attachments = chatMessageAttachments;
await graphClient.Teams[currentTeam.Id].Channels[currentChannel.Id].Messages
.Request()
.AddAsync(chatMessage);
}
请在文档参考下方找到。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。