Как показать несколько базовых карт в качестве ответа в веб-перехватчике диалогового потока

Я хочу отправить три основные карты в качестве ответа пользователю через ответ JSON через выполнение в python. Так есть ли способ сделать это?

P.S.

По сути, я хочу показать пользователю три кнопки для call, mail и call on office, но поскольку базовая карта показывает только одну ссылку, я подумал, можно ли показать несколько карточек, содержащих кнопки!

Это ответ, который я посылаю.

{
    "payload": {
        "google": {
            "expectUserResponse": "true",
            "richResponse": {
                "items": [{
                        "simpleResponse": {
                            "textToSpeech": "Here is the information of " + user_name
                        }
                    },
                    {
                        "basicCard": {
                            "title": name,
                            "subtitle": subtitle,
                            "image": {
                                "url": picture_url,
                                "accessibilityText": "Picture of " + name
                            },
                            "formattedText": msg,
                            "buttons": [{
                                    "title": "Call " + user_name,
                                    "openUrlAction": {
                                        "url": "tel:+" + contact
                                        if contact is not None
                                        else "",
                                        "androidApp": {
                                            "packageName": "com.android.phone"
                                        },
                                        "versions": []
                                    }
                                }
                                if contact is not None
                                else {
                                    "title": "Send Mail to " + user_name,
                                    "openUrlAction": {
                                        "url": "mailto:" + email,
                                        "androidApp": {
                                            "packageName": "android.intent.extra.EMAIL"
                                        },
                                        "versions": []
                                    }
                                },
                                {
                                    "title": "Call on extention",
                                    "openUrlAction": {
                                        "url": "tel:+" + extension
                                        if extension is not None
                                        else "",
                                        "androidApp": {
                                            "packageName": "com.android.phone"
                                        },
                                        "versions": []
                                    }
                                }

                            ],
                            "imageDisplayOptions": "WHITE"
                        }
                    }
                ],
                "suggestions": [{
                        "title": "Info of " + manager
                        if manager is not None
                        else ""
                    },
                    {
                        "title": "Info of " + hr_manager
                        if hr_manager is not None
                        else ""
                    }
                ]
            }
        }
    }
}

person Jay Patel    schedule 23.08.2018    source источник
comment
Согласно этому github.com/dialogflow/dialogflow-fulfillment-nodejs/issues/34 больше кнопки не поддерживается. Однако, когда я проверяю документацию здесь dialogflow.com/docs/reference/message-objects#basic_card мы видим, что в карточке таблицы может быть только 1 кнопка, но это не указано для базовой карты - кнопки имеют тип массив (список внешних ссылок.)   -  person Amanda Cavallaro    schedule 24.08.2018
comment
Да что ты предлагаешь?   -  person Jay Patel    schedule 24.08.2018


Ответы (1)


Вы не можете отправить несколько карточек, и хотя кнопки на карточке принимают массив, разрешен только один элемент в этом массиве.

Однако вы можете сделать нечто подобное, отправив карусель просмотра. Это позволяет отправлять несколько плиток, которые включают заголовок и могут включать изображения, текст и ссылку в той же форме, что и карточка со ссылкой.

Одна проблема заключается в том, что я не уверен, должна ли ссылка быть ссылкой http или https, или разрешены ли другие формы URL, но имейте в виду, что не все поверхности, которые могут поддерживать ссылки, поддерживают возможность совершать телефонные звонки.

person Prisoner    schedule 24.08.2018
comment
Тогда какой смысл делать кнопки массивом, если разрешен только один элемент?? - person Radhe9254; 09.07.2019
comment
Я предполагаю, что изначально он был разработан для поддержки большего, но это было изменено довольно поздно в процессе разработки, возможно, из-за проблем с UI/UX. Но это чисто предположение. - person Prisoner; 09.07.2019