it-swarm.com.ru

Как использовать быстрые ответы с вложением

В официальная документация быстрых ответов говорится:

Быстрые ответы работают со всеми типами сообщений, включая текстовые сообщения, изображения и шаблоны вложений.

Но когда я пытаюсь отправить его с template_type: button, я получаю сообщение об ошибке:

{
    "error": {
        "message": "(#100) Only one of text or attachment can be specified",
        "type": "OAuthException",
        "code": 100,
        "fbtrace_id": "H8w+ZfRbBub"
    }
}

Что я пытаюсь отправить:

{
    "recipient": {"id": "234567890"},
    "message": {
        "text": "TEXT_MESSAGE",
        "quick_replies": [
            {
                "content_type": "text",
                "title": "SOME_TITLE_1",
                "payload": "PAY_LOAD_1"
            },
            {
            "content_type": "text",
            "title": "SOME_TITLE_2",
            "payload": "PAY_LOAD_2"
            }
        ],
        "attachment": {
            "type": "template",
            "payload": {
                "template_type": "button",
                "text": "TEXT_MESSAGE",
                "buttons": [
                    {
                        "title": "READ_MORE_BUTTON",
                        "type": "postback",
                        "payload": "look:1:c"
                    }
                ]
            }
        }
    }
}

когда я отправил без message.text, я получил ошибку:

{
    "error": {
        "message": "(#100) Cannot use both CTA and quick reply",
        "type": "OAuthException",
        "code": 100,
        "fbtrace_id": "C0DDxGzaUUj"
    }
}

Что такое CTA?

Как отправить быстрые ответы с вложением?

8
Dmitry

Эта структура сообщения должна работать для отправки вложения изображения с быстрыми ответами:

{
    "recipient": {
        "id": recipient_id
    },
    "message": {
        "attachment":{
            "type":"image",
            "payload":{
                "url": image_url
            }
        },
        "quick_replies": [
            {
                "content_type":"text",
                "title": "Next Image",
                "payload": "YOUR_DEFINED_PAYLOAD_FOR_NEXT_IMAGE"
            }
        ]
    }
}

Надеюсь, это поможет Дмитрий .

7
Allan Berger

попробуй так. Он будет вставлять кнопки и быстрые ответы, но кнопка будет вверху, а быстрые ответы будут внизу

"message":{
    "quick_replies":[
        {"content_type":"text",
        "title":"title1",
        "payload":"SUPPLEMENT_1"},
        {"content_type":"text",
        "title":"title2",
        "payload":"PAYLOAD_1"
        }
    ],
 "attachment":{
  "type":"template",
  "payload":{
    "template_type":"button",
    "text":"your text",
    "buttons":[
      {
        "type":"postback",
        "title":"Confirm",
        "payload":"USER_DEFINED_PAYLOAD"
      }
    ]
  }
 }
}
4
Dimuth Ruwantha

Итак, у меня та же проблема, и я провел несколько поисков.

Что означает CTA?

Прежде всего, CTA выступает за призыв к действию. Это кнопки, которые вы создаете с помощью запроса на шаблон кнопки, общий шаблон или с настройками потока постоянного меню.

Кажется, что, как вы сказали, в официальной документации FB прямо говорится, что Быстрые ответы поддерживаются с ЛЮБЫМ шаблоном, по какой-то причине в него не входит шаблон Button.

Почему это так?

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

Почему это не задокументировано?

Я предполагаю, что это, вероятно, связано с тем, что API Messenger Platform все еще находится в бета-версии и со дня на день происходит множество изменений. Лично я работаю над фреймворком Java для выполнения ботов Facebook Messenger, и я обнаружил, что многие вещи не очень хорошо документированы, и часто возвращаемые сообщения об ошибках вводят в заблуждение. Таким образом, вы, вероятно, должны принять тот факт, что шаблон кнопки и быстрые ответы не работают вместе. Quick Replies работает с любым другим шаблоном или с текстовыми сообщениями.

2
Aurasphere