2016-09-29 47 views
1

我有一个传送带,但当在Skype中单击CardAction按钮时,它不会打开URL。它在Emulator中工作。是否有一个原因?BotFramework Carousel CardAction Button does not OpenUrl

 foreach(var botAmazonItem in botAmazonItems) 
     { 
      List<CardImage> cardImages = new List<CardImage>(); 
      cardImages.Add(new CardImage(url: $"{botAmazonItem.imageUrl}")); 
      List<CardAction> cardButtons = new List<CardAction>(); 
      CardAction plButton = new CardAction() 
      { 
       Value = botAmazonItem.detailsPageUrl, 
       Type = ActionTypes.OpenUrl, 
       Title = botAmazonItem.title 
      }; 
      cardButtons.Add(plButton); 
      HeroCard plCard = new HeroCard() 
      { 
       Title = $"{botAmazonItem.title}", 
       Subtitle = $"{botAmazonItem.formattedPrice}", 
       Images = cardImages, 
       Buttons = cardButtons 
      }; 
      Attachment plAttachment = plCard.ToAttachment(); 
      replyToConversation.Attachments.Add(plAttachment); 
     } 

回答

2

尝试将您的“值”链接更改为https://而不是http://。 Skype的要求所有的外部链接为https://

下面的代码(基于你的)工作原理:

 var botAmazonItems = new List<AmazonBotItem>(); 
     botAmazonItems.Add(new AmazonBotItem() { imageUrl = "http://placekitten.com/200/300", title = "Microsoft", formattedPrice = "$8.95", detailsPageUrl = "https://www.microsoft.com" }); 
     botAmazonItems.Add(new AmazonBotItem() { imageUrl = "http://placekitten.com/300/300", title = "Bot Framework", formattedPrice = "$2.95", detailsPageUrl = "https://www.botframework.com" }); 

     var reply = activity.CreateReply(); 
     reply.AttachmentLayout = AttachmentLayoutTypes.Carousel; 
     reply.Attachments = new List<Attachment>(); 

     foreach (var botAmazonItem in botAmazonItems) 
     { 
      List<CardImage> cardImages = new List<CardImage>(); 
      cardImages.Add(new CardImage(url: $"{botAmazonItem.imageUrl}")); 
      List<CardAction> cardButtons = new List<CardAction>(); 
      CardAction plButton = new CardAction() 
      { 
       Value = botAmazonItem.detailsPageUrl, 
       Type = ActionTypes.OpenUrl, 
       Title = botAmazonItem.title 
      }; 
      cardButtons.Add(plButton); 
      HeroCard plCard = new HeroCard() 
      { 
       Title = $"{botAmazonItem.title}", 
       Subtitle = $"{botAmazonItem.formattedPrice}", 
       Images = cardImages, 
       Buttons = cardButtons 
      }; 
      Attachment plAttachment = plCard.ToAttachment(); 
      reply.Attachments.Add(plAttachment); 
     } 
+0

哦,伙计!我刚刚修复了亚马逊图片的确切问题,我可以发誓我已经证实detailsPageUrl确实是https,但是第二次看起来并非如此。这做到了。对于那个很抱歉! –