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

时间:2016-09-14 12:48:07

标签: slack-api slack

我正在使用松弛的API来获取表情符号的完整列表,这样当我收到消息时,我只会用图标替换:squirrel:

方法https://slack.com/api/emoji.list的工作方式类似于魅力,但仅返回30个图标。我认为这是正确的,因为在文档页面(https://api.slack.com/methods/emoji.list)中他们说:

  

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

足够公平,但我怎样才能获得关联icon-name / icon URL的完整列表?

4 个答案:

答案 0 :(得分:18)

我终于设法获得所有图标并使用它们,我在这里发布了解决方案,对于任何想要使用类似的人来说:

  1. 首先,我通过this松弛的网址

  2. 获得了Slack 自定义表情符号
  3. 由于在步骤1中我们只获得自定义Emojis,因此知道slack使用unicode字符中定义的标准表情符号很有用,通过:smiley::horse:等自定义句柄进行映射。好消息是我们可以通过松弛的页面找到link to a JSON object with all the emoji mappings。这个文件很大,但我们需要的东西。

  4. 在文件中,您将找到一个javascript对象数组,如下所示:

  5. {
     "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:
    • 统一是要使用的unicode字符(要在HTML页面中直接使用它,您需要添加&#x,所以在这种情况下,您必须使用{{1这是渲染?

    使用此信息,您将能够创建一个松弛到HTML的函数来解码表情符号并在任何地方显示它们

答案 1 :(得分:12)

不完全确定这是否是您正在寻找的,但如果只是将图像映射到松散风格的名称,这是一个非常好的库:

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

所以,建立在自述文件中的例子:

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

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

答案 2 :(得分:3)

仅扩展@Luca的出色解决方案,我就创建了shortnames => html unicode JavaScript字典...

下载:Slack emoticons to unicode html mapping

https://raw.githubusercontent.com/iamcal/emoji-data/master/emoji.json来源生成-2018年8月17日

示例:

{
  "+1": "👍",
  "-1": "👎",
  "100": "💯",
  "1234": "🔢",
  "8ball": "🎱",
  "ab": "🆎",
  "abc": "🔤",
  "abcd": "🔡",
  "accept": "🉑",
  ...
  "zebra_face": "🦓",
  "zipper_mouth_face": "🤐",
  "zombie": "🧟",
  "zzz": "💤"
}

哪个会成为...

  

{“ +1”:“?”,“ -1”:“?”,“ 100”:“?”,
  “ 1234”:“?”,“ 8ball”:“?”,“ ab”:“?”,
  “ abc”:“?”,“ abcd”:“?”,“ accept”:“?”,
  ...“ zebra_face”:“?”,“ zipper_mouth_face”:“?”,
  “ zombie”:“?”,“ zzz”:“?”}

答案 3 :(得分: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