Boo*_*oon 95 linux authentication slack kde-plasma
在应用程序中,转到“文件”>“工作区”>“登录新工作区”会启动一个浏览器窗口。在浏览器中选择工作区后,它会启动一个返回到 slack 的深层链接,但它不起作用。Slack 桌面上没有任何反应。
当检查链接过程中运行的命令时,KDE 似乎正在修改链接。我该怎么做才能解决这个问题?
小智 187
Boon提供的答案是正确的。我想在该答案下发表评论,但显然我需要 50 分才能发表评论,所以我只能添加新答案......
深入研究这个问题后,听起来 kde-cli-tools 中的 kde-open5 正在对 URL 的第一个元素(slack://A/B/C变成slack://a/B/C)进行一些时髦的小写处理。这听起来像是一个老错误:https://bugs.kde.org/show_bug.cgi ?id=429408
我怀疑松弛改变了他们处理链接/链接的方式已经改变 - 它与我的情况下的松弛升级一致:slack-desktop:amd64从4.22.0到4.23.0。
查看进程列表:
我已向 slack 报告了此问题并提供了所有详细信息,因此我希望它能得到解决。
只是添加一些细节(布恩建议)
while sleep .1; do ps aux | grep slack | grep -v grep | grep magic; done
Run Code Online (Sandbox Code Playgroud)
尝试登录 slack - 在浏览器中接受登录尝试
您应该在控制台中看到登录链接:
kde-open5 slack://WORKSPACE_ID/magic-login/...
/usr/lib/slack/slack --enable-crashpad slack://workspace_id/magic-login/...
Run Code Online (Sandbox Code Playgroud)
/usr/lib/slack/slack --enable-crashpad slack://WORKSPACE_ID/magic-login/...
Run Code Online (Sandbox Code Playgroud)
dea*_*908 116
我正在使用 Archlinux,点击链接都不起作用,也没有将链接传递给 slack 参数。如果您在浏览器中打开开发控制台,您也可以找到正确的链接,它应该在控制台输出中。如果您将此链接复制到剪贴板 (ctrl+c),然后切换到 Slack 应用程序。看起来 onFocus slack 会自动读取剪贴板并处理它(如果它是链接)。这样就可以登录了。

Ϲοδ*_*διϲ 44
感谢这里对问题的出色分析,我成功创建了一个脚本来解决这个问题。
#!/usr/bin/env bash
if [[ "${1:-}" = slack://* ]]; then
exec /usr/lib/slack/slack --enable-crashpad "$1"
fi
exec /usr/bin/xdg-open "$@"
Run Code Online (Sandbox Code Playgroud)
将上述脚本另存为/usr/local/bin/xdg-open并使该脚本可执行。就是这样!
我真的希望 KDE 团队对这样一个基本问题表现出一些热爱,特别是考虑到 Slack 的使用有多广泛。
Boo*_*oon 15
在尝试了各种方法之后,我注意到我怀疑tlvs8sasf上面的工作空间 ID 通常在日志中以大写字母显示。
因此,我尝试通过大写工作区 ID 来更新深层链接,然后单击它。瞧,这对我有用。希望这可以帮助其他也遇到同样问题的人。
小智 11
我几乎每次重新启动计算机时都会遇到这个问题,并且我有大约 10 个活动的 slack 工作区,因此编写了一个快速的 bash 脚本来为我完成大写技巧。它并不意味着很强大,但它确实有效。我会把它留在这里,以防对其他人有用。
# Workaround to get slack to open workspaces correctly.
# Problem and workarond concept as described here:
# /sf/ask/4960694511/
# Usage: Run this script, open slack as normal, and attempt to log into workspaces as normal. Once done, kill the script.
while sleep .1; do
line=$(ps ax | grep slack | grep -v grep | grep magic | awk '{ print $NF }')
WD=$(echo $line | cut -d '/' -f 3 | tr [:lower:] [:upper:])
LN=$(echo $line | cut -d '/' -f 5)
if [ "$WD" != "" ]; then
echo "got $line"
line2="slack://$WD/magic-login/$LN"
echo "Attempting to open $line2"
/usr/lib/slack/slack --enable-crashpad $line2
fi
done | grep -v "^$"
Run Code Online (Sandbox Code Playgroud)