Powershell 如何通过SlackAPI和PSSlack模块更改Slack的详细信息

Powershell 如何通过SlackAPI和PSSlack模块更改Slack的详细信息,powershell,slack,slack-api,Powershell,Slack,Slack Api,我一直在考虑创建一个脚本,通过使用SlackAPI来更改用户的电子邮件。我已经完成了设置应用程序bot并将其添加到服务器中以及通过Oauth授予所需权限的过程。当前脚本如下所示: $SlackToken = "xoxp" $SlackAllUsers = Send-SlackApi -Token $SlackToken -Method 'users.list' | Select-Object -ExpandProperty 'Members' $SlackAllUsers =

我一直在考虑创建一个脚本,通过使用SlackAPI来更改用户的电子邮件。我已经完成了设置应用程序bot并将其添加到服务器中以及通过Oauth授予所需权限的过程。当前脚本如下所示:

$SlackToken = "xoxp"
$SlackAllUsers = Send-SlackApi -Token $SlackToken -Method 'users.list' | Select-Object -ExpandProperty 'Members'
$SlackAllUsers = $SlackAllUsers | Where-Object { $_.is_bot -eq $false -and $_.is_restricted -eq $false }
$UserEmail = 'x'
$SlackUserID = $SlackAllUsers | Where-Object { $_.Profile.Email -eq $UserEmail } | Select-Object -ExpandProperty 'ID'
$SlackUserID
$UserEmailNew = 'y'
Send-SlackApi -Token $SlackToken -Method 'users.profile.set' -Body `
@{
    user = $SlackUserID
    profile = @{
        email = $UserEmailNew
    }
}
它有效地利用
users.list
方法获取特定频道内的所有用户,然后过滤这些用户以删除不相关的帐户。我试图使用
users.profile.set
在此处应用更改,这就是我遇到问题的地方,我不知道为什么,但这会导致以下错误:

Parse-SlackError : Unknown error invalid_profile received from Slack API.
At C:\Program Files\WindowsPowerShell\Modules\PSSlack\1.0.5\Public\Send-SlackAPI.ps1:115 char:21

当测试
$SlackUserID
时,我可以看到我正确地获取了我试图更改和编辑的特定ID。阅读了有关
users.profile.set
的文档后,似乎这是通过使用API实际应用更改的唯一方法。重要的是要注意,在我的环境中,我们没有使用企业环境,这意味着我没有访问
admin.*
Oauth权限,因此无法使用该方法解决此问题。

我遇到的主要问题似乎是处理通过API令牌发送的更改请求的部分。开始部分和中间部分确实有效,我通过测试电子邮件和ID抓取以及管道的正确细节来确认这一点。简单的变化部分需要理解为

Send-SlackApi -Token $SlackToken -Method 'users.profile.set' -Body `
@{
    user = $SlackUserID
    profile = @{
        email = $UserEmailNew
    } | ConvertTo-Json
}
回过头来看,这似乎很明显,如果您正在管道化基于JSON的API调用,这意味着您需要添加
converttoJSON
,以便正确解释它