Viber Rest Api не может открыть внутренний браузер

Я пишу "клавиатуру" Viber, и я хочу создать кнопку, которая открывает ссылку во внутреннем браузере, что, согласно этому документу, должно выполняться путем отправки сообщения JSON на https://chatapi.viber.com/pa/send_message. Я устанавливаю параметры кнопок "ActionType": "open-url" и "ActionBody":"example.com". Параметр "OpenURLType": "internal" является необязательным, и его значение по умолчанию - internal. Независимо от того, что я пишу в качестве значения этого параметра или если я его опускаю, ответ будет успешным, но URL-адрес открывается во внешнем браузере.

{
    "receiver":"some hash",
    "keyboard":{
      "Type":"keyboard",
      "DefaultHeight":false,
     "Buttons": [
            {
                "Columns": null,
                "Rows": null,
                "BgColor": "#7eceea",
                "Silent": null,
                "BgMediaType": null,
                "BgMedia": null,
                "BgMediaScaleType": null,
                "ImageScaleType": null,
                "BgLoop": null,
                "ActionType": "open-url",
                "ActionBody": "https://www.wikipedia.org/",
                "Image": null,
                "Text": "open this ",
                "TextVAlign": null,
                "TextHAlign": null,
                "TextPaddings": null,
                "TextOpacity": null,
                "TextSize": "small",
                "OpenURLType": "internal",
                "OpenURLMediaType": "nulll",
                "TextBgGradientColor": null,
                "TextShouldFit": null
            }
        ]
   }
}

и ответ 200 ОК

{
"status": 0,
"status_message": "ok",
"message_token": 5469236575712199350,
"chat_hostname": "SN-CHAT-01_"

}

Когда я поигрался с другими необязательными параметрами, я заметил несоответствие. Некоторые из них вызывают ошибку, когда вы задаете какое-то бредовое значение (например, устанавливая для ActaionType значение "operghj"). Другие необязательные параметры - нет. Например

{
    "status": 3,
    "status_message": "keyboard is not valid. [instance value (\"operghj\") not found in enum (possible values: [\"reply\",\"open-url\",\"\"])]",
    "chat_hostname": "SN-CHAT-01_"
}

Кто-нибудь знает, как это исправить или что я делаю не так?

1 ответ

Решение

Параметр "min_api_version": 7, должен быть добавлен в json, чтобы открыть URL-адрес внутри.

{
    "receiver":"some hash",
    "min_api_version": 7,
    "keyboard":{
      "Type":"keyboard",
      "DefaultHeight":false,
     "Buttons": [
            {
                "Columns": null,
                "Rows": null,
                "BgColor": "#7eceea",
                "Silent": null,
                "BgMediaType": null,
                "BgMedia": null,
                "BgMediaScaleType": null,
                "ImageScaleType": null,
                "BgLoop": null,
                "ActionType": "open-url",
                "ActionBody": "https://www.wikipedia.org/",
                "Image": null,
                "Text": "open this ",
                "TextVAlign": null,
                "TextHAlign": null,
                "TextPaddings": null,
                "TextOpacity": null,
                "TextSize": "small",
                "OpenURLType": "internal",
                "OpenURLMediaType": "nulll",
                "TextBgGradientColor": null,
                "TextShouldFit": null
            }
        ]
   }
}
Другие вопросы по тегам