【问题标题】:Can I use the Slack API to set the profile picture?我可以使用 Slack API 来设置头像吗?
【发布时间】:2016-04-06 11:18:20
【问题描述】:

我正在为一个游戏社区管理一个 Slack 团队。我的用户在游戏中都有头像,我已经在使用 Slack API 将他们的 Slack 用户名自动设置为他们在游戏中的名称,这样更容易被人识别。

此外,我还想在 Slack 中自动设置他们的个人资料图片以及他们在游戏中的头像图片。但是我想不出办法,所以我的问题是可以做到吗?如果可以,怎么做?

我目前的出发点是未记录的 API 方法 users.profile.set,它允许我设置用户的配置文件(请参阅下面的用户配置文件示例)。到目前为止,我已经能够修改:

  • 名字
  • 姓氏
  • 标题
  • 电话
  • Skype

用户个人资料还包含个人资料图片的 URL,但我目前无法更改它。我尝试了外部 URL,以及已经上传到 Slack 上的图像的 URL。

这是我的“未记录”Slack API 方法users.profile.set 的文档中的link,其中包含到目前为止我能想到的所有选项。

任何帮助将不胜感激。


2017 年 11 月更新

与此同时,Slack 添加了一个名为 users.setPhoto 的新 API 方法,用于设置个人资料照片。但是,这种新方法并不能解决这个问题,因为它只适用于您自己的用户(或者更准确地说是您拥有访问令牌的用户,例如您没有指定另一个 user ID)。

我正在寻找一种方法来通过 Slack 应用程序/机器人更改我的 Slack 团队中所有用户的个人资料图片。


用户配置文件示例:

{
id: "U12345678",
team_id: "T12345678",
name: "erik.kalkoken",
deleted: false,
status: null,
color: "9f69e7",
real_name: "Erik Kalkoken",
tz: "America/Chicago",
tz_label: "Central Daylight Time",
tz_offset: 3600,
profile: {
avatar_hash: "XXX",
first_name: "Erik",
last_name: "Kalkoken",
title: "",
phone: "",
skype: "",
image_24: "https://avatars.slack-edge.com/2016-03-19/XXX_24.jpg",
image_32: "https://avatars.slack-edge.com/2016-03-19/XXX_32.jpg",
image_48: "https://avatars.slack-edge.com/2016-03-19/XXX_48.jpg",
image_72: "https://avatars.slack-edge.com/2016-03-19/XXX_72.jpg",
image_192: "https://avatars.slack-edge.com/2016-03-19/XXX_192.jpg",
image_512: "https://avatars.slack-edge.com/2016-03-19/XXX_512.jpg",
image_1024: "https://avatars.slack-edge.com/2016-03-19/XXX_512.jpg",
image_original: "https://avatars.slack-edge.com/2016-03-19/XXX_original.jpg",
real_name: "Erik Kalkoken",
real_name_normalized: "Erik Kalkoken",
email: "test@email.com"
},
is_admin: false,
is_owner: false,
is_primary_owner: false,
is_restricted: false,
is_ultra_restricted: false,
is_bot: false,
has_2fa: false
}

【问题讨论】:

    标签: slack-api slack


    【解决方案1】:

    在弄乱了一点之后,可以使用未记录的users.setPhoto端点:

    curl https://slack.com/api/users.setPhoto \
        -F "token=<removed>" \
        -F "image=@/path/to/image.jpg"
    

    不幸的是,它会调整您的头像大小,从而无法上传动画 gif。

    【讨论】:

    • 这看起来很有希望。不幸的是,我在设置新图像时遇到了问题。总是得到“no_image”错误。您能否更具体地说明图像参数是如何定义的?也许举个例子?谢谢。
    • 也不应该有用户参数吗?
    • @ 是必需的(特定于 cURL)并且路径必须是绝对的。生成令牌的用户是默认用户,我没有进一步探讨设置其他用户个人资料图像。如果此端点的作者在整个 API 中保留了类似的参数,则您可以使用文档中的 users.profile.set 端点中使用的相同 user 字段来指定用户。
    • Slack 添加了一个名为“setPhoto”的新方法,它允许设置个人资料图片。但是,它只适用于当前用户,因此并不能真正解决这个问题的目的。
    • @ErikKalkoken 你有没有绕过no_image 错误?
    【解决方案2】:

    我认为个人资料图片 API 尚不可用。我不久前读到它在他们的 TODO 清单上。

    【讨论】:

    • 是的,可能就是这样。但是,我阅读了有关实际存在的其他“未记录”API 方法的相同声明。所以我希望改变个人资料图片的方法是存在的,并且有人已经知道如何使用它。
    【解决方案3】:

    我能够使用 Jay Querie 的方法让它工作。 两个区别是我给出了完整的路径,我把图像放在了第一位。 所以就我而言:

    curl https://slack.com/api/users.setPhoto -F "image=@C:\Users\name\Pictures\dojocat.jpg" -F "token=xxxx-123-123-123-123"
    

    最初当我使用 gitbash 运行 curl 时,它正在我的 gitbash 安装/正在执行的目录中搜索图像。因此,如果我将 dojocat.jpg 放在我的 gitbash 可执行文件旁边,它就会找到它。

    【讨论】:

      猜你喜欢
      • 2021-04-20
      • 1970-01-01
      • 2017-09-03
      • 2016-02-12
      • 2013-02-14
      • 2012-05-29
      • 2019-03-28
      • 1970-01-01
      • 2012-05-20
      相关资源
      最近更新 更多