Преобразование шаблона кнопки facebook из json в c#

Здравствуйте, я пытаюсь сделать этот шаблон в своем коде C# для Bot Framework V4. Это код из фейсбука.

  "payload": {
  "template_type":"button",
  "text":"<MESSAGE_TEXT>",
  "buttons":[
    <BUTTON_OBJECT>, 
    <BUTTON_OBJECT>, 
    ...
  ]
}

И это моя попытка сделать это. Я не могу отладить ошибку, потому что она работает только в мессенджере. Любая помощь будет оценена спасибо.

            Activity reply = stepContext.Context.Activity.CreateReply();
            reply.ChannelData = JObject.FromObject(
                new
                {
                    attachment = new
                    {
                        type = "template",
                        payload = new
                        {
                            template_type = "button",
                            text = "xx",
                            buttons = new[]
                            {
                               new
                                  {
                                       type = "web_url",
                                       title = "take test",
                                       url = "xx",
                                       messenger_extensions="true",
                                       webview_height_ratio = "tall",
                                  },
                            },
                        },
                    },
                });
            await stepContext.Context.SendActivityAsync(reply);

person user10860402    schedule 24.05.2019    source источник
comment
С какой проблемой вы столкнулись с этим кодом?   -  person Chetan Ranpariya    schedule 24.05.2019
comment
Пожалуйста, не вставляйте код в виде изображений. Вставьте фактический код, чтобы а) он был доступен для поиска и б) люди могли копировать и вставлять код, чтобы протестировать его в своей среде.   -  person Simply Ged    schedule 24.05.2019
comment
Извините, я сейчас отредактирую.   -  person user10860402    schedule 24.05.2019
comment
@ChetanRanpariya мой формат неверен. я не могу отладить точную проблему, потому что она не выдает ошибку на локальном эмуляторе. Только в мессенджере.   -  person user10860402    schedule 24.05.2019
comment
@user10860402 смотрите этот пост, я думаю, он может вам помочь: stackoverflow.com/a/44968612/9940803 stackoverflow.com/a/45894182/9940803   -  person Sanpas    schedule 24.05.2019
comment
stackoverflow.com/a/55128551/10708483   -  person tdurnford    schedule 24.05.2019


Ответы (1)


Ваш код выглядит нормально. Не забудьте внести в белый список любые URL-адреса. вы используете с Facebook. Обратите внимание, это должны быть https URL-адреса. Кроме того, если веб-сайт не настроен для веб-просмотра, вам не нужны свойства messenger_extensions и webview_height_ratio в кнопке.

var reply = turnContext.Activity.CreateReply();

var attachment = new
{
    type = "template",
    payload = new
    {
        template_type = "button",
        text = "Sign up for our mailing list!",
        buttons = new[]
        {
            new
            {
                type = "web_url",
                url = "https://mybot.azurewebsites.net/",
                title = "Sign Up!"
            },
        },
    },
};

reply.ChannelData = JObject.FromObject(new { attachment });

await turnContext.SendActivityAsync(reply, cancellationToken);

Ознакомьтесь с документацией по мессенджерам в разделе шаблоны кнопок. Больше подробностей.

Надеюсь это поможет!

person tdurnford    schedule 24.05.2019
comment
Спасибо. Господа, по указанной вами ссылке. Нужно ли размещать веб-страницу? Или вы можете просто использовать html, который не размещен? Спасибо. - person user10860402; 26.05.2019
comment
К сожалению, сайт нуждается в хостинге. - person tdurnford; 27.05.2019