无法在MS团队中发送pdf附件

问题描述 投票:0回答:1

我已经使用 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

c# asp.net .net botframework chatbot
1个回答
0
投票

仔细检查以下步骤:

  • 将 PDF 文件存储在 Azure Blob 存储中。
  • 更新您的机器人代码以创建带有链接到 PDF 文件 URL 的按钮的 HeroCard。
  • 确保 PDF 文件可公开访问。
  • 在 Microsoft Teams 中测试发送 PDF。
© www.soinside.com 2019 - 2024. All rights reserved.