Viber продолжает вводить URL-адрес нажатой кнопки в разговоре - PullRequest
5 голосов
/ 15 октября 2019

Я создаю приложение для чат-ботов, которое ищет рейсы. Когда рейс найден, я возвращаю карусель с кнопками и хочу, чтобы пользователь перенаправлялся на сайт после нажатия на них. Это работает, единственная проблема заключается в том, что нажатие кнопки помещает URL в разговор. Можно ли как-то открыть URL-адрес, не вводя его в диалог?

JSON, который я отправляю в Viber REST API:

{
   "type":"rich_media",
   "min_api_version":6.8,
   "receiver":"asmS1TwIYkPVxpod3rNCYg==",
   "rich_media":{
      "Type":"rich_media",
      "ButtonsGroupColumns":6,
      "ButtonsGroupRows":7,
      "Buttons":[
         {
            "Columns":6,
            "Rows":4,
            "ActionType":"open-url",
            "OpenURLType":"external",
            "ActionBody":"http://localhost:60219/Booking?flightId=1&sessionid=3b0f51f5-cf88-4d1e-a64b-1222e19b4702&adults=1&children=0&infants=0",
            "Text":"<b>Best Offer - 68.99 EUR</b><br />Bratislava to Nis on 18Oct at 14:10",
            "Image":"http://localhost:60219/api/v1/FlightInfo/FlightDetail/Viber?flightId=1&returnFlightId=",
            "TextVAlign":"bottom",
            "TextHAlign":"center"
         },
         {
            "Columns":6,
            "Rows":1,
            "ActionType":"open-url",
            "OpenURLType":"external",
            "ActionBody":"http://localhost:60219/Booking?flightId=1&sessionid=3b0f51f5-cf88-4d1e-a64b-1222e19b4702&adults=1&children=0&infants=0",
            "Text":"DEMO booking",
            "TextVAlign":"center",
            "TextHAlign":"center"
         },
         {
            "Columns":6,
            "Rows":1,
            "ActionType":"open-url",
            "OpenURLType":"external",
            "ActionBody":"https://www.ryanair.com/gb/en/booking/home/BTS/INI/2019-10-18//1/0/0/0",
            "Text":"Book now",
            "TextVAlign":"center",
            "TextHAlign":"center"
         },
         {
            "Columns":6,
            "Rows":1,
            "ActionType":"open-url",
            "OpenURLType":"external",
            "ActionBody":"http://localhost:60219/FlightDetail?flightid=1",
            "Text":"Flight Details",
            "TextVAlign":"center",
            "TextHAlign":"center"
         },
         {
            "Columns":6,
            "Rows":4,
            "ActionType":"open-url",
            "OpenURLType":"external",
            "ActionBody":"http://localhost:60219/PriceAlert?departureAirportId=ce43057e-afe6-4592-8759-9ea9643bb566&arrivalAirportId=3f43e185-bba3-4216-813d-473bfdbb024d",
            "Text":"<b>Set the Price Alert for  BTS-INI</b><br />We will notify you when the price will be below level set by you.",
            "Image":"http://localhost:60219//content/images/price_alerts_default_image.jpg",
            "TextVAlign":"bottom",
            "TextHAlign":"center"
         },
         {
            "Columns":6,
            "Rows":3,
            "ActionType":"open-url",
            "OpenURLType":"external",
            "ActionBody":"http://localhost:60219/PriceAlert?departureAirportId=ce43057e-afe6-4592-8759-9ea9643bb566&arrivalAirportId=3f43e185-bba3-4216-813d-473bfdbb024d",
            "Text":"Set Price Alert ?",
            "TextVAlign":"center",
            "TextHAlign":"center"
         }
      ]
   }
}

1 Ответ

1 голос
/ 02 ноября 2019

В соответствии с Официальной документацией Viber API ,

Параметры сообщения Rich Media и его кнопок также используются для клавиатуры. Вы можете найти дополнительную информацию о них в следующей статье.

Они также упоминают ,

Нажатие кнопки на клавиатуре вызовет другой ответ в зависимости отна кнопках значение «actionType».

Для open-url ActionType:

  • Значение ActionBody отправляется в виде текстового сообщения учетной записи (через событие сообщения).

  • В браузере открывается значение ActionBody.

  • Значение ActionBody отображается в ветке чата в виде сообщения от пользователя.

Похоже, что третий вариант появляется вместо второго в списке выше.

...