Facebook Messenger SDK 贴纸

Facebook messenger sdk stickers

是否可以使用 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);
    }
});

目前似乎无法通过 Messenger 机器人发送贴纸。如果您检查包含原生贴纸的消息数据,它看起来像这样:

{ 
  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 字段)。

如果您使用的是来自 https://github.com/Schmavery/facebook-chat-api/ 的 facebook 聊天机器人 API,您可以发送这样的贴纸:

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

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

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