AnimationCard适用于模拟器,但不适用于Messenger

时间:2017-03-24 10:19:03

标签: bots botframework chatbot facebook-messenger-bot

我正在尝试使用带有文本,GIF和按钮的Bot Framework显示动画卡。它在机器人模拟器上完美运行,但不会显示在Messenger上。有什么想法吗?

代码

/**Send the question with the level information if available, the index and the Math expression along with a countdown timer as GIF attachment */
let message = new builder.Message(session)
    .text(level ? level + '  \n' + strings.question : strings.question, dialogData.index + 1, question.expression)
    .addAttachment(
    new builder.AnimationCard(session)
        .media([{
            profile: "image/gif",
            url: "https://media.giphy.com/media/l3q2silev6exF53pu/200w.gif"
        }])
        .buttons(buttons)
    // .toAttachment()
    )
session.send(message)

在模拟器上 enter image description here

在Messenger上 enter image description here

有什么想法可能会关闭? 提前感谢您的建议

更新1

这是我的控制台上的错误

{“error”:{“message”:“(#100)Param [elements] [0] [title]必须是非空的UTF-8编码字符串”,“”类型“:”OAuthException“,”代码 “:100,” fbtrace_id “:” + CLEcx63w 4N“}}

1 个答案:

答案 0 :(得分:4)

您需要在动画卡中加入title,Messenger要求所有卡片都包含标题。此外,动画卡在信使中的工作方式略有不同,因为它们使用.gif发送消息,然后是带有标题和按钮的卡片,而不是像在模拟器中那样将它们放在一张漂亮的卡片中。

在你的用例中,我会用第一行说出它作为标题的级别,以及作为副标题的问题。但是,此文本将显示在gif下方而不是它上方,因此它的布局与您现在的布局略有不同。

let message = new builder.Message(session)
    .addAttachment(
    new builder.AnimationCard(session)
        .title(level ? level : 'Level 0')
        .subtitle(strings.question)
        .media([{
            profile: "image/gif",
            url: "https://media.giphy.com/media/l3q2silev6exF53pu/200w.gif"
        }])
        .buttons(buttons)
    )
session.send(message)