如何使用消息按钮或链接轻松发送临时应用下载链接itms-service

时间:2019-08-07 17:47:10

标签: python plist slack slack-api slack-commands

我有一个宽松的/Slash命令,该命令生成应用程序文件链接。我想将该链接作为按钮或链接发送给用户,但必须使用以下前缀:

itms-services://?action=download-manifest&url={download_link}

当前,slack不能将其识别为有效链接,但是由于权限问题,iOS强制要求此链接。

基本上,我想模仿松弛状态下Web上的下载按钮,因此不需要用户访问该网站。

在网络上,此链接itms-services://?action=download-manifest&url={download_link}正常工作,要求用户授权下载。

enter image description here

test_attachment = [
    {
        "color": "#CC0000",
        "actions": [
            {
                "type": "button",
                "text": ":red_circle:   Download Link:",
                "url": "itms-services://?action=download-manifest&url={download_link}"
            }
        ]
    }
]

slack_client.api_call("chat.postMessage", channel=channel_id, text=text, attachments=json.dumps(test_attachment))

另一个例子:

<a href="itms-services://?action=download-manifest&url=http://loqi.me/app/Geoloqi.plist">
  Download Geoloqi
</a>

这将在Web上起作用,以及如何使其在松弛消息上起作用。

2 个答案:

答案 0 :(得分:1)

我的一个应用程序中遇到了类似的问题,我想为动态生成的图像文件提供一个下载按钮。

据我所知,Slack中没有允许您执行此操作的开关或选项,因此您唯一的选择是使用助手Web应用程序。

方法是:

  1. 用户单击Slack上的链接按钮,以在浏览器中打开您的帮助程序网络应用程序
  2. 助手Web应用执行实际下载(无需进一步的用户交互)

我的猜测是,无论如何,用户都将需要在浏览器中进行身份验证,因此这不会给用户带来任何不便。但是,当然,您需要提供其他Web帮助程序。

答案 1 :(得分:0)

松弛链接解析器无法将itms-services链接识别为有效URL,因为其地址(我们通常在://之后发现的地址)为空。 一种快速解决方案是用一个虚地址填充它,例如0.0.0.0

这是一个有效的阻止工具包:

{
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "Try to install me:"
            },
            "accessory": {
                "type": "button",
                "text": {
                    "type": "plain_text",
                    "text": "Install",
                    "emoji": true
                },
                "url": "itms-services://0.0.0.0?action=download-manifest&url={download_link}"
            }
        }
    ]
}

,它看起来像: enter image description here