登录 slack-desktop 无法在 4.23.0 64 位 (Ubuntu) 上运行

Signing into slack-desktop not working on 4.23.0 64-bit (Ubuntu)

在应用程序中,转到 文件 > 工作区 > 登录新工作区 启动浏览器 window。在浏览器中选择工作区后,它会重新启动一个深度 link 回到松弛状态,但它不起作用。 slack-desktop 上没有任何反应。

为了弄清楚发生了什么,我 运行 /usr/bin/slack 查看了日志。

我看到了 HANDLE_DEEP_LINK 的日志,但没有跟进 activity。

[01/27/22, 00:37:00:872] info: Store: HANDLE_DEEP_LINK {
  "url": "slack://tlvs8sasf/magic-login/3034334935776-be4bc1d875407dce8b1d32f74698c927a95ed50f2c2b770e731cfbdbcba21a93"
} 

在尝试了各种方法之后,我注意到我怀疑是工作区 ID,上面的 tlvs8sasf 通常在日志中大写。

因此,我尝试通过大写工作区 ID 来更新深度 link,然后单击它。瞧,它对我有用。希望这能帮助其他也遇到同样问题的人。

是正确的。我想在那个答案下发表评论,但显然我需要 50 分才能发表评论,所以我只能添加新答案...

在深入研究之后,听起来 kde-cli-tools 的 kde-open5 在 URL 的第一个元素上做了一些时髦的 lower-casing(slack://A/B/C 变成了 slack://a/B/C).这听起来像是一个老错误:https://bugs.kde.org/show_bug.cgi?id=429408

我怀疑他们处理 links/links 的方式发生了变化 - 在我的情况下它与 slack 升级一致:slack-desktop:amd64 从 4.22.0 到 4.23.0。

查看进程列表:

  • slack 网站要求浏览器打开 link 大写
  • kde-open5 运行 正确 link
  • slack 是 运行,工作空间 lower-cased

我已将此问题报告给 slack 的所有细节,所以我希望它会得到修复。

解决方法:

只是添加一些细节到什么 ()

  1. 运行 bash中的快速脚本:
while sleep .1; do ps aux | grep slack | grep -v grep | grep magic; done
  1. 尝试登录 slack - 在浏览器中接受登录尝试

  2. 您应该在控制台中看到登录 link:

kde-open5 slack://WORKSPACE_ID/magic-login/...
/usr/lib/slack/slack --enable-crashpad slack://workspace_id/magic-login/...
  1. 打开 slack 正确 link:
/usr/lib/slack/slack --enable-crashpad slack://WORKSPACE_ID/magic-login/...

我正在使用 Archlinux,点击 link 都没有用,也没有将 link 传递给 slack 参数。如果你在浏览器中打开开发控制台,你也可以找到正确的 link 它应该在控制台输出中。如果您将此 link 复制到剪贴板 (ctrl+c),然后切换到您的 slack 应用程序。似乎 onFocus slack 会自动读取剪贴板并处理它(如果它是 link)。这样就可以登录了。

我几乎每次重新启动计算机时都会遇到这个问题,而且我有大约 10 个活动的 slack 工作区,所以破解了一个快速的 bash 脚本来为我做大写技巧。它并不意味着坚固,但它确实有效。我会把它留在这里以防它对其他人有用。

# Workaround to get slack to open workspaces correctly.
# Problem and workarond concept as described here:
# 
# 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 "^$"

感谢这里对问题的出色分析,我设法创建了一个脚本来避免这个问题。

#!/usr/bin/env bash

if [[ "${1:-}" = slack://* ]]; then
    exec /usr/lib/slack/slack --enable-crashpad ""
fi

exec /usr/bin/xdg-open "$@"

将上述脚本保存为/usr/local/bin/xdg-open并使脚本可执行。就是这样!

我真的希望 KDE 团队对这样一个基本问题表现出一些热爱,尤其是考虑到 Slack 的广泛使用。

在 Kubuntu 20.04 和 Chrome 浏览器中遇到同样的问题。 Firefox 解决了这个问题)