【问题标题】:How to publish a View to Slack app for all users?如何为所有用户发布 View to Slack 应用程序?
【发布时间】:2020-07-29 17:24:08
【问题描述】:

我有一个连接到 AWS Lex 机器人的 Slack 应用程序。因此,Slack 应用程序的 Request URL 是 Lex 提供的 Postback URL。但是,我想为应用添加主页选项卡,但无法为所有用户发布表面。 Slack API 似乎只允许您为特定用户发布表面(user_id 是 POST 调用的必需参数)。如何将此视图发布给所有使用该应用的用户?

publish_url = "https://slack.com/api/views.publish"
header = {'content-type':'application/json'}
parameters = {
    "token": slack_token,
    "user_id": member_id,      # <--- This is my problem
    "view": json.dumps({
        "type": "home",
        "blocks": [
            {
                "type": "section",
                "text": {
                    "type": "mrkdwn",
                    "text": "Welcome to *Survey Analyzer*! ..."
                }
            },
            ...
          ]
        })
    }
r = requests.post(publish_url, params=parameters, headers=header)

当我使用自己的会员 ID 时,它只会将视图正确推送给我和我自己。我也尝试过使用该应用的 ID,但这似乎并没有将视图推送给任何用户。

【问题讨论】:

    标签: python slack slack-api aws-lex


    【解决方案1】:

    您只能为每个用户单独发布一个主页选项卡。您可以使用users.list 检索工作区的所有用户,然后为该列表中的每个用户调用views.publish

    您也可以通过Events API 订阅app_home_opened 事件。一旦用户打开主页选项卡,它将触发一个包含用户 ID 的事件。这样,您只会为实际访问您应用的主页选项卡的用户发布视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多