如何使用 Slack API 更新用户配置文件的自定义字段 - 自定义字段更新问题

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

我正在尝试为松弛工作区中的用户更新自定义字段。

参考 API 文档 - https://api.slack.com/methods/users.profile.set

我的要求如下所示

curl -X POST -H "Authorization: Bearer $USER_TOKEN" \
-H "Content-type: application/json; charset=UTF-8" \
-d '{
    "profile": {
        "fields": {
            "Xf015PPHEJKC": {
                "value": "username-using-api",
                "alt": ""
            }
        },
        "status_text": "api-status",
        "skype": ""
    },
    "user": "U02V1UA3YHL"
}' \
https://slack.com/api/users.profile.set | jq .

这里

Xf015PPHEJKC
是有问题的自定义字段的ID。

请求没有出错,它返回自定义字段的旧值的用户详细信息

上述请求成功更新了

status_text
值,该值不是自定义字段。但是无法将自定义字段值更新为
username-using-api
.

如何使用 API 更新自定义字段值

api slack slack-api
1个回答
0
投票

您链接的文档说明了一些事情,第一,我怀疑可能已经是真的,因为您可以更改其中一个字段,但值得一问:

“除非您使用所有者或管理员生成的令牌(对于企业网格,这必须是组织所有者或组织管理员),否则您不能更改其他用户的个人资料详细信息。您不能更改用户的个人资料详细信息,除非以下两项都是正确的: 你的角色等级比他们高。角色级别从最高到最低是: Primary Owner > Owner > Admin > Member > Guest 。可以在此处找到有关角色的更多信息。 要更改所有者或管理员的资料,您必须使用由主要所有者生成的令牌。”

如果这是真的,那太好了,让我们进一步看: 运行 team.profile.get slack 方法时,返回的个人资料字段和 ID 是否与您在问题中发布的匹配?该字段可能是在错误的团队中创建的。

如果您发现该字段的 ID 确实匹配,那么您应该很好。

阅读文档说明如下:

字段对象是一组自定义配置文件字段的键:值对。

我注意到在你的代码中它看起来不是一个数组,而是两个带有逗号分隔符的对象。我对 CURL 不太熟悉,不知道是否应该将这些对象包装在表示列表或数组(如 [array])的东西中。如果添加该类型的语法没有任何作用,那么让我们继续。

我会尝试删除其他字段,即非自定义字段,并且只尝试更新自定义字段。原因是文档提到在“配置文件”有效负载中使用“字段”对象是更新自定义字段的方式,而不是非自定义字段,尽管我确实注意到您只对自定义字段使用字段对象,但它可以是它只允许为每个 http 请求设置自定义或非自定义。

他们的文档进一步说

fields 数组中的一个字段需要一个类型。这决定了信息值包含的类型。

但是他们的示例根本没有显示有效载荷中引用的这种“类型”。它可能是有效负载中所需的附加密钥,例如:

 "profile": {
    "fields": {
        "Xf015PPHEJKC": {
            "value": "username-using-api",
            "alt": "",
            "type":"text" //Adding Type key to the field object
        }
    },
    "status_text": "api-status",
    "skype": ""
}

让我知道进展如何!

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