发布Chatbot后使用本地映像

时间:2018-03-19 12:33:51

标签: c# file azure url botframework

我正在创建使用本地图像的英雄卡,我在本地使用模拟器时让它们正常工作,但在发布到azure之后无法使其工作。我试图将图像转换为base64以使用它。

List<CardImage> cardImages = new List<CardImage>
{
  new CardImage(url: ImageToBase64(thisService.Type.ToString()))
};

(...)

HeroCard plCard = new HeroCard()
{
  Title = $"{titles[thisService.Type.ToString()]}",
  Subtitle = $"Serviço {thisService.Frequency.ToString()} agendado para {thisService.Date.ToLongDateString()} às {thisService.Date.ToShortTimeString()}.",
  Images = cardImages,
  Buttons = cardButtons
};

(...)

public static string ImageToBase64(string imageName)
{
  var path = HostingEnvironment.MapPath($"/Resources/Images/{imageName}.PNG");
  Byte[] bytes = File.ReadAllBytes(path);
  string base64String = Convert.ToBase64String(bytes);
  return "data:image/png;base64," + base64String;
}

azure门户网站上显示的错误如下:

{"error":{"message":"(#100) name_placeholder[elements][0][image_url] should represent a valid URL","type":"OAuthException","code":100,"fbtrace_id":"BLoacoRFVy7"}}

这可能吗?

1 个答案:

答案 0 :(得分:3)

看起来您正在尝试使用仅支持托管图像的Facebook频道。如果您使用的是Azure,则可以使用blobstorage托管图像并使用此公共链接显示图像。但是,任何托管图像都可以使用。