- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在使用 ms graph api 从内部桌面应用程序向团队 channel 发布消息。主要目的是将图像附加到消息中。我们将图片文件上传到 channel 的一盘文件夹中,如下图。
var uploadProps = new DriveItemUploadableProperties
{
ODataType = null,
AdditionalData = new Dictionary<string, object>
{
{ "@microsoft.graph.conflictBehavior", "replace" }
}
};
var session = await graphClient.Drives[driveId]
.Items[parentId].ItemWithPath(fileName).CreateUploadSession(uploadProps).Request().PostAsync(token);
int maxSliceSize = 320 * 1024;
var fileUploadTask =
new LargeFileUploadTask<DriveItem>(session, fileStream, maxSliceSize);
// Create a callback that is invoked after each slice is uploaded
IProgress<long> progress = new Progress<long>(reportAsync);
// Upload the file
var uploadResult = await fileUploadTask.UploadAsync(progress);
if (uploadResult.UploadSucceeded)
{
return uploadResult.ItemResponse;
}
然后我们向 channel 发送一条消息,并附上之前上传的图片作为引用附件。
var chatMsg = new ChatMessage();
chatMsg.Body = new ItemBody();
chatMsg.Body.ContentType = BodyType.Html;
chatMsg.Body.Content = msg + " " + string.Join(" ", attachments.Select(d => $"<attachment id=\"{parseEtag(d.ETag)}\"></attachment>"));
chatMsg.Attachments = attachments.Select(d => new ChatMessageAttachment()
{
Id = parseEtag(d.ETag),
ContentType = "reference",
ContentUrl = d.WebUrl,
Name = d.Name
});
return await this.graphClient.Teams[teamId].Channels[channelId].Messages
.Request()
.AddAsync(chatMsg, token);
问题是该消息只显示了附件的名称,而没有在底部的消息中看到的预览。我们希望在团队应用程序中附加文件时显示预览(顶部消息)。
最佳答案
我们设法使用 Simple Upload Api 解决了这个问题。 ,加上 ?$expand=thumbnails
查询参数。我还没有尝试过,但查询参数也应该适用于您正在使用的端点。
从 ThumbnailSet 中选择尺寸在上传响应中,并将其作为图像标签添加到您的消息正文中。见下文:
// channel, file, extractIdFromEtag, message omitted for brevity.
// PUT /groups/{group-id}/drive/items/{parent-id}:/{filename}:/content
const uploadUrl = `https://graph.microsoft.com/beta/groups/${channel.teamId}/drive/items/root:/${channel.displayName}/${file.name}:/content?$expand=thumbnails`;
const res = await this.http.put(uploadUrl, file).toPromise(); // FYI Using Angular http service
const attachment = {
id: extractIdFromEtag(res.eTag),
contentType: 'reference',
contentUrl: res.webUrl,
name: res.name,
thumbnailUrl: res.webUrl
};
const postBody = {
subject: null,
body: {
contentType: 'html',
content: message
},
};
// This is what makes the image show in the message as if posted from teams
postBody.body.content += `<br><br><img src="${res.thumbnails[0].large.url}" alt="${res.name}"/>`;
const messageUrl = `https://graph.microsoft.com/beta/teams/${channel.teamId}/channels/${channel.id}/messages`;
const result = await this.http.post(messageUrl, postBody).toPromise();
// Done
如果您希望将原始图像作为文件附加,以及在消息中显示图像预览,您也可以像之前一样继续添加附件。
关于microsoft-graph-api - 在 ChatMessage 中预览图片附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62650974/
我们正在使用 ms graph api 从内部桌面应用程序向团队 channel 发布消息。主要目的是将图像附加到消息中。我们将图片文件上传到 channel 的一盘文件夹中,如下图。
我正在尝试学习 Java 和 Jsf,并且一直在从事聊天功能项目。我在点击发送按钮后试图显示消息。 Eclipse 中出现的错误是来自发送按钮的操作 Controller addMessage 方法的
我只是尝试使用 microsoft grah API 访问 channel 或聊天中的发送聊天消息。还为我的应用程序授予了委托(delegate)和应用程序级别所需的权限。 使用的API:POST h
如标题所述,我正在尝试将消息发布到 Slack 聊天。我有与 fetch 一起使用的代码,但我现在似乎找不到它。以下是我当前的代码: fetch('http://slack.com/api/chat.
我正在尝试在 Android 上编写一个 Firebase 应用程序,该应用程序本质上是一个大型实时聊天室。我可以使用登录和注销功能,但是当我尝试从数据库获取消息类的实例时,我收到一个奇怪的错误,涉及
我正在制作一个Web项目,在本地完成后我上传到服务器(centos7),但是当我进入主页时,日志返回此错误。 奇怪的是,在我的笔记本电脑(Mac)上一切正常,但是当我通过服务器打开它时。 spring
我是一名优秀的程序员,十分优秀!