Facebook messenger sdk贴纸

时间:2016-04-14 06:28:12

标签: facebook bots messenger facebook-messenger

是否可以使用Facebook Messenger的新API发送原生贴纸?

我尝试使用以下代码,但贴纸显示为下载的图片,而不是原生图片

    messageData = {
        "attachment":{
            "type":'image',
            "payload":{
                "url":stickerURL
            }       
        }
    }
} else {
    messageData = {
        text:content
    }
}

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);
    }
});

2 个答案:

答案 0 :(得分:3)

目前看起来似乎无法通过messenger bot发送贴纸。如果您检查包含本机标签的消息数据,它看起来像这样:

{ 
  mid: 'mid.14647894...',
  seq: 3199,
  sticker_id: 1433995916873384,
  attachments: [ 
    { 
       type: 'image',
       payload: { 
           url: 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-xta1/t39.1997-6/p100x100/10173492_1433995920206717_978513924_n.png?_nc_ad=z-m' 
       } 
    } 
  ]
}

它与messenger bot指南中描述的结构不同(注意它有一个 sticker_id 字段)。

答案 1 :(得分:1)

如果您使用的是https://github.com/Schmavery/facebook-chat-api/中的facebook chat bot API,则可以发送如下标签:

 var msg = {
    body: "",
    sticker: 1433995916873384
  }
  api.sendMessage(msg, message.threadID);

但是,如果有人有办法获得更多贴纸ID,那就太好了!感谢上面的@starshine wang

编辑:要获取标签ID,请console.log记录从api.listen返回的消息对象。它有类型贴纸