【发布时间】:2022-08-05 04:15:20
【问题描述】:
我正在使用团队机器人 api。 我们希望支持图像 - 代理将在团队机器人对话中上传图像,图像将被发送到我们的服务器并转换为 base64 返回给用户。
我的服务器收到的请求:
{\"text\":\"发送文件\",\"textFormat\":\"plain\",\"attachments\":[{\"contentType\":\"application/vnd.microsoft.teams. file.download.info\",\"content\":{\"downloadUrl\":\"https://-my.sharepoint.com/personal//_layouts/15/download.aspx?UniqueId=2f**b&翻译=假&tempauth=&ApiVersion=2.0\",\"uniqueId\":\"\",\"fileType\":\"pdf\"},\"contentUrl\":\"https://-my.sharepoint.com/personal/*/Documents/Microsoft 团队聊天 文件/myFile.pdf\",\"name\":\"myFile.pdf\"},{\"contentType\":\"text/html\",\"content\":\"<p>发送文件</p>\"}],\"type\":\"message\",\"timestamp\":\"2022-07-25T11:13:17.7731472Z\"....... }
这是我的代码:
if (message.attachments) { const file = message.attachments.find(a => a.contentType === \"application/vnd.microsoft.teams.file.download.info\"); if (file) { require(\'request\').get({uri: file.content.downloadUrl, encoding: null}, function (err, res, body) { if (!err && res.statusCode === 200) { const base64Data = \"data:\" + res.headers[\"content-type\"] + \";base64,\" + new Buffer(body).toString(\'base64\'); } else console.log(err ? err : \"statusCode: \" + res.statusCode); }); }}但是我得到了“statusCode:403”。
从文档看来,该 URL 应该可以工作:
content.downloadUrl 是下载文件的预认证链接。 要获取文件的内容,请向 URL 发送 GET 请求 在 content.downloadUrl 中。该 URL 仅在几分钟内有效,因此 您必须立即获取文件。
-
你能分享一下你指的是哪个样本吗?
-
@Nivedipa-MSFT 你能看一下吗?
-
@user2503775 - 您能否检查一下您是否配置了适当的权限来访问 downloadURL,因为它需要身份验证?
-
我是否需要基于 BOT 凭据或使用机器人的用户的凭据的令牌? @ChetanSharma-msft