我已经使用 Bot 框架(C#)创建了 MS 团队的一个简单的测试机器人。我想添加一个在对话中发送 pdf 文件的功能。当我在网络聊天和机器人模拟器中测试它时,它工作正常,但是当我想在聊天中发送 pdf 时,我收到错误
Operation returned an invalid status code 'BadRequest'Microsoft.Bot.Connector
我不知道我做错了什么。有谁知道如何解决这个问题。
这是我的
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
try {
var url = "https://**blob.core.windows.net/**/XYZ.pdf";
var reply = MessageFactory.Attachment(new
Attachment
{
Name = "Bot.pdf",
ContentUrl = url,
ContentType = "application/pdf"
});
await turnContext.SendActivityAsync(MessageFactory.ContentUrl(url, MediaTypeNames.Application.Pdf,"Bot.pdf"));
await turnContext.SendActivityAsync(reply, cancellationToken);
}catch (Exception ex)
{
await turnContext.SendActivityAsync(MessageFactory.Text(ex.Message+ex.Source), cancellationToken);
}
}
这是我的机器人清单.json
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
"version": "1.2.3",
"manifestVersion": "1.16",
"id": "ID",
"packageName": "com.package.name",
"name": {
"short": "BOTBOT",
"full": "BOTBOT"
},
"developer": {
"name": "Technologies",
"mpnId": "",
"websiteUrl": "https://Technologies.com/",
"privacyUrl": "https://Technologies.com/privacypolicy",
"termsOfUseUrl": "https://Technologies.com/terms-conditions"
},
"description": {
"short": "Technologies Stuff",
"full": "Technologies Stuff"
},
"icons": {
"outline": "outline.png",
"color": "color.png"
},
"accentColor": "#FFFFFF",
"staticTabs": [
{
"entityId": "conversations",
"scopes": [ "personal" ]
},
{
"entityId": "about",
"scopes": [ "personal" ]
}
],
"bots": [
{
"botId": "ID",
"scopes": [ "personal", "groupChat", "team" ],
"isNotificationOnly": false,
"supportsCalling": false,
"supportsVideo": false,
"supportsFiles": true
}
],
"validDomains": [ "*.ngrok.io", "quickchart.io", "*.ngrok-free.app","*.azurewebsites.net","blob.core.windows.net","*.pdf"],
"webApplicationInfo": {
"id": "OTHER ID",
"resource": "api://ct-kernalbot.azurewebsites.net/OTHER ID"
}
}
我首先尝试通过转换为base64文件来发送本地文件
data:application/pdf;base64,{Convert.ToBase64String(fileData)}
现在我正在使用 URL pdf 文件。 但在聊天中仍然无法获取 PDF
仔细检查以下步骤: