我正在使用 slack API 来获取表情符号的完整列表,这样当我收到消息时,我只需将
:squirrel:
替换为图标即可。
方法
https://slack.com/api/emoji.list
就像一个魅力,但只返回 30 个图标。我认为这是正确的,因为在文档页面(https://api.slack.com/methods/emoji.list)中他们说:
此方法列出了团队的自定义表情符号。
很公平,但是我怎样才能获得关联图标名称/图标 URL 的完整列表?
我终于设法获取所有图标并使用它们,我在这里为任何想要使用类似操作的人发布解决方案:
由于在步骤 1 中我们仅获得自定义表情符号,因此了解 slack 使用以 unicode 字符定义的标准表情符号(通过
:smiley:
或 :horse:
等自定义句柄映射)很有用。好处是我们可以找到通过 slack 页面链接的链接到包含所有表情符号映射的 JSON 对象。这个文件很大,但包含我们需要的一切。 在该文件中,您将找到一组 javascript 对象,如下所示:
{
"name":"SMILING FACE WITH OPEN MOUTH",
"unified":"1F603",
"variations":[],
"docomo":"E6F0",
"au":"E471",
"softbank":"E057",
"google":"FE330",
"image":"1f603.png",
"sheet_x":26,
"sheet_y":18,"
short_name":"smiley",
"short_names":["smiley"],
"text":":)",
"texts":["=)","=-)"],
"category":"People",
"sort_order":5,
"has_img_apple":true,
"has_img_google":true,
"has_img_twitter":true,
"has_img_emojione":true
}
我使用了以下信息:
smiley
转换为 :smiley:
)&#x
,因此在这种情况下,您必须使用渲染的 😃
😃使用此信息,您将能够创建一个 slack-to-html 函数来解码表情符号并将其显示在您想要的任何地方
不完全确定这是否是您正在寻找的,但如果它只是将图像映射到松弛样式名称,那么这是一个非常好的库:
https://github.com/iamcal/emoji-data
因此,以自述文件中的示例为基础:
带有 Slack 风格短名称
point_up
的表情符号具有十六进制值 261d
,因此可以在这里找到:https://github.com/iamcal/emoji-data/blob/master/img-apple- 160/261d.png
(苹果,因为默认的松弛表情符号是苹果表情符号)
只是扩展@Luca的出色解决方案,我创建了一个
shortnames
=> html unicode
javascript 字典...
生成 - 2018 年 8 月 17 日,来源 https://raw.githubusercontent.com/iamcal/emoji-data/master/emoji.json
示例:
{
"+1": "👍",
"-1": "👎",
"100": "💯",
"1234": "🔢",
"8ball": "🎱",
"ab": "🆎",
"abc": "🔤",
"abcd": "🔡",
"accept": "🉑",
...
"zebra_face": "🦓",
"zipper_mouth_face": "🤐",
"zombie": "🧟",
"zzz": "💤"
}
这变成了...
{
"100": "💯",
"1234": "🔢",
"+1": "👍",
"-1": "👎",
"8ball": "🎱",
"ab": "🆎",
"abc": "🔤",
"abcd": "🔡",
"accept": "🉑",
...
"zebra_face": "🦓",
"zipper_mouth_face": "🤐",
"zombie": "🧟",
"zzz": "💤"
}
据我所知,没有可用的 API 端点或支持的表情符号/关键字的完整列表。通过使用 React Developer Tools(Chrome 扩展)检查 Slack 表情符号选择器,我能够获取全套表情符号(包括工作区的自定义表情符号)。
这是一个示例(JSON):
...
{
"name": "beers",
"unicode": "1f37b",
"id": "E1f37b",
"keywords": ["bar", "beer", "clink", "drink", "mug", "ale", "food"]
},
{
"name": "baby_bottle",
"unicode": "1f37c",
"id": "E1f37c",
"keywords": ["baby", "bottle", "drink", "milk", "infant"]
},
{
"name": "knife_fork_plate",
"unicode": "1f37d-fe0f",
"id": "E1f37d-fe0f",
"keywords": ["cooking", "fork", "knife", "plate"]
},
{
"name": "champagne",
"unicode": "1f37e",
"id": "E1f37e",
"keywords": ["bar", "bottle", "cork", "drink", "popping"]
},
{ "name": "popcorn", "unicode": "1f37f", "id": "E1f37f", "keywords": [] },
...
完整转储(截至 2020 年 12 月 20 日,不包括自定义表情符号):https://gist.github.com/impressiver/87b5b9682d935efba8936898fbfe1919
由于似乎不可能找到这些表情符号名称的完整且最新的来源,我想出了这个浏览器控制台脚本。只需让它在 Slack 中运行,完成后它将下载完整的
emoji.json
。在撰写本文时,它包含 2485 个条目。
https://gist.github.com/8461e125072c2806301403a4e1eca891
看起来像这样:
{
"+1": "https://a.slack-edge.com/production-standard-emoji-assets/13.0/google-medium/[email protected]",
"+1::skin-tone-2": "https://a.slack-edge.com/production-standard-emoji-assets/13.0/google-medium/[email protected]",
"+1::skin-tone-3": "https://a.slack-edge.com/production-standard-emoji-assets/13.0/google-medium/[email protected]",
"+1::skin-tone-4": "https://a.slack-edge.com/production-standard-emoji-assets/13.0/google-medium/[email protected]",
如果您想要实际的表情符号而不是图像,您可以从图像文件名中解析它,例如
[email protected]
是"\u1f44d\u1f3fd"
。