如何通过 API 获取 slack 表情符号的完整列表?

问题描述 投票:0回答:5

我正在使用 slack API 来获取表情符号的完整列表,这样当我收到消息时,我只需将

:squirrel:
替换为图标即可。

方法

https://slack.com/api/emoji.list
就像一个魅力,但只返回 30 个图标。我认为这是正确的,因为在文档页面(https://api.slack.com/methods/emoji.list)中他们说:

此方法列出了团队的自定义表情符号。

很公平,但是我怎样才能获得关联图标名称/图标 URL 的完整列表?

slack-api slack
5个回答
27
投票

我终于设法获取所有图标并使用它们,我在这里为任何想要使用类似操作的人发布解决方案:

  1. 首先,我通过this slack URL 获得了Slack

    Custom
  2. Emoji
  3. 由于在步骤 1 中我们仅获得自定义表情符号,因此了解 slack 使用以 unicode 字符定义的标准表情符号(通过

    :smiley:
    :horse:
    等自定义句柄映射)很有用。好处是我们可以找到通过 slack 页面链接的链接到包含所有表情符号映射的 JSON 对象。这个文件很大,但包含我们需要的一切。

  4. 在该文件中,您将找到一组 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
}

我使用了以下信息:

  • shortnames 是在 slack 中使用的名称(您需要将
    smiley
    转换为
    :smiley:
  • unified 是要使用的 unicode 字符(要在 HTML 页面中直接使用它,您需要添加
    &#x
    ,因此在这种情况下,您必须使用渲染的
    😃
    😃

使用此信息,您将能够创建一个 slack-to-html 函数来解码表情符号并将其显示在您想要的任何地方


19
投票

不完全确定这是否是您正在寻找的,但如果它只是将图像映射到松弛样式名称,那么这是一个非常好的库:

https://github.com/iamcal/emoji-data

因此,以自述文件中的示例为基础:

带有 Slack 风格短名称

point_up
的表情符号具有十六进制值
261d
,因此可以在这里找到:https://github.com/iamcal/emoji-data/blob/master/img-apple- 160/261d.png

(苹果,因为默认的松弛表情符号是苹果表情符号)


6
投票

只是扩展@Luca的出色解决方案,我创建了一个

shortnames
=>
html unicode
javascript 字典...

下载:Slack 表情到 unicode html 映射

生成 - 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": "💤"
}

2
投票

据我所知,没有可用的 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


1
投票

由于似乎不可能找到这些表情符号名称的完整且最新的来源,我想出了这个浏览器控制台脚本。只需让它在 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"

© www.soinside.com 2019 - 2024. All rights reserved.