2017-06-22 13 views
0

私は宝探しの中にボタンのリストを追加しようとしています。 Botエミュレータでうまく動作しますが、Messenger Channelでは動作しません。ここに私のコードです。 Microsoft Bot Builder for .NETのボタンリストの問題 - チャンネル:Facebookメッセンジャー

Output in Bot Emulator

Messengerの

Output in Messenger

public static IList<Attachment> ToAttachmentList(this List<string> items) 
{ 
     var attachments = new List<Attachment>(); 
     var actions = new List<CardAction>(); 

     foreach (var item in items) 
     { 
      actions.Add(new CardAction(ActionTypes.ImBack, title: item, value: item)); 
     } 

     var heroCard = new HeroCard 
     { 
      Buttons = actions 
     }; 

     attachments.Add(heroCard.ToAttachment()); 

     return attachments; 
} 

private async Task ShowOptions(IDialogContext context) 
{ 
     var reply = context.MakeMessage(); 
     reply.Text = $"Here's what you can do."; 
     reply.AttachmentLayout = AttachmentLayoutTypes.List; 
     reply.Attachments = Messages.OrderingOptions.ToAttachmentList(); 

     await context.PostAsync(reply); 
} 

は、最後のボタンは、すべてのボタンのテキストが切り捨てられ、カルーセルとして追加されます。

これを解決してください。 documentationパー

In Messenger

答えて

1

、ボタンのタイトルは20文字の制限があります。

さらに3つのボタンがある場合、FacebookはButton templateが1〜3個のボタンを予期しているので、それらを分割します。

あなたは20文字に制限する必要がありますので、「私はピザを注文したい」ではなくの、あなたが例えば「注文のピザ」を使用する場合があります。ボタンを追加するには制限は11 "ボタン"であるため、Quick Repliesを検索することができます(ただし、タイトルには20文字の制限があります)。この他のpostを確認すると、クイック返信の詳細を確認できます。

+0

4つのアクションを追加したり、テキストと同じ文を追加する方法はありますか? – user2558444

+0

あなたはキャラクターを20に制限する必要があるので、私はピザを注文したいのではなく、例えば "Order pizza"を使うだけです。ボタンを追加するにはクイック返信(https://developers.facebook.com/docs/messenger-platform/send-api-reference/quick-replies)を参照することをお勧めします。制限は11です(ただし、タイトルには20文字の制限があります)。 https://stackoverflow.com/questions/40230436/bot-framework-fails-to-send-facebookquickreply-using-addkeyboardcard-or-using-chをチェックすることができます。 @EzequielJadibからのこの正当な答えが否定的な得点を持っている理由がないので、upvoteして、 –

+1

upvotingと設定してください –

関連する問題