是否可以使用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);
}
});
答案 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返回的消息对象。它有类型贴纸