【问题标题】:How to respond to a selected button in Facebook Messenger如何响应 Facebook Messenger 中的选定按钮
【发布时间】:2016-07-28 12:01:32
【问题描述】:

我正在尝试在 Facebook Messenger 中对我的机器人进行编程,以便在用户选择按钮后以文本进行响应。我已经读过可以通过处理回发类型按钮的有效负载来实现,但我似乎无法让它工作

app.post('/webhook/', function (req, res) {
 let messaging_events = req.body.entry[0].messaging
 for (let i = 0; i < messaging_events.length; i++) {
    let event = req.body.entry[0].messaging[i]
    let sender = event.sender.id
    if (event.message && event.message.text) {
        let text = event.message.text
        if (text === 'poorita') {
            sendPooritaMessage(sender)
            sendTextMessage(sender, "Here are some restaurants near you: ")
            continue
        } else if (text === 'budget') {
            sendBudgetMessage(sender)
            continue
        } else if (text === 'bot') {
            sendBotMessage(sender)
            continue
        } else if (text === 'hungry na me') {
            sendHelloMessage(sender)
            continue
        } else if (text === 'location') {
            sendLocationMessage(sender)
            continue
        }
        sendTextMessage(sender, "Text received :), echo: " + text.substring(0, 200))
    } else if (event.postback && event.postback.payload) {
        let payload = event.postback.payload
        if (payload === 'payload_1') {
            sendTextMessage(send, "It worked!")
            continue
        }
    }
}
res.sendStatus(200)})

function sendBotMessage(sender) {
let messageData = {
    "attachment": {
        "type": "template",
        "payload": {
            "template_type": "button",
            "text": "Regular or special?",
            "buttons": [
            {
                "type": "postback",
                "payload": "payload_1",
                "title": "Regular"
            },
            {
                "type": "web_url",
                "title": "Special",
                "url": "https://www.messenger.com"
            }]
        }
    }
}
request({
    url: 'https://graph.facebook.com/v2.6/me/messages',
    qs: {access_token:token},
    method: 'POST',
    json: {
        recipient: {id:sender},
        message: messageData,
    }
}, function(error, response, body){
    if (error) {
        console.log('Error sending message: ', error)
    } else if (response.body.error) {
        console.log('Error: ', response.body.error)
    }
})}

我正在尝试创建这样的输出 enter image description here

【问题讨论】:

    标签: facebook bots messenger reply


    【解决方案1】:

    您的代码看起来不错。你在日志中看到了什么?回发消息是否发送到机器人?

    “发送”与“发件人”是否存在拼写错误? sendTextMessage(send, "成功了!")

    一个可行的例子可能会有所帮助。

    https://github.com/matthewericfisher/fb-robot

    https://m.me/dynamicmemorysolutions

    --马特

    【讨论】:

      猜你喜欢
      • 2021-04-22
      • 2017-02-05
      • 2017-06-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 2020-06-03
      • 1970-01-01
      • 2018-10-07
      相关资源
      最近更新 更多