Button 来自传入webhook的消息中的松弛交互按钮失败

Button 来自传入webhook的消息中的松弛交互按钮失败,button,message,interactive,slack-api,Button,Message,Interactive,Slack Api,我已经创建了一个Slack应用程序,其中包含一个传入的webhook和slash命令。OAUTH进程按预期工作,我能够成功部署应用程序、检索和存储应用程序令牌 我已经创建了一条消息(带有交互式按钮),并通过应用程序的传入webhook发送到Slack。问题在于按钮不工作,并在松弛通道内生成错误消息 阅读了尽可能多的Slack文档后,我注意到向Slack发送消息的机器人程序需要在消息中包含应用令牌。然而,我详细阅读了webhook文档,却找不到类似的要求。webhook指南只提到了所需的JSON

我已经创建了一个Slack应用程序,其中包含一个传入的webhook和slash命令。OAUTH进程按预期工作,我能够成功部署应用程序、检索和存储应用程序令牌

我已经创建了一条消息(带有交互式按钮),并通过应用程序的传入webhook发送到Slack。问题在于按钮不工作,并在松弛通道内生成错误消息

阅读了尽可能多的Slack文档后,我注意到向Slack发送消息的机器人程序需要在消息中包含应用令牌。然而,我详细阅读了webhook文档,却找不到类似的要求。webhook指南只提到了所需的JSON格式,但没有提到应用程序令牌。我错过什么了吗?该指南明确指出,webhook消息可以包含交互式按钮,但按钮就是不起作用。我将创建如下响应:

    $actions = [
        [
            "name"  => "save",
            "text"  => "Save",
            "type"  => "button",
            "value" => "save"
        ]
    ];

    $attachments = [
        [
            "fallback"      => "fallback message",
            "title"         => "Attachment 1",
            "text"          => "foobar attachment",
            "color"         => "#0066ff",
            "callback_id"   => "btn_action",
            "actions"       => $actions
        ]
    ];

    $payload = [
        "channel"       => "#test",
        "response_type" => "ephemeral",
        "icon_emoji"    => ":rocket:",
        "username"      => "Test User",
        "attachments"   => $attachments
    ];

    $data = 'payload=' . json_encode($payload);

    $ch = curl_init($webhook);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);
我很想知道如何解决这个问题! 干杯
Andrew。

我也有同样的问题,这是因为使用了一个与我授权我的应用程序时生成的不同的松弛令牌。我认为slack只能在应用程序具有唯一的bot令牌时才能识别该应用程序。不幸的是,获取这个新的bot访问令牌是一个非常重要的过程。我将概述如下:

  • 选择你的应用程序和“添加松弛按钮”中的“机器人”复选框 第节

  • 将它在“a”元素中生成的url粘贴到浏览器中,然后对自己进行授权

  • 收集它试图重定向回应用程序时添加到url的
    code
    标记

  • 使用
    code
    令牌获取应用程序的
    bot\u访问\u令牌。我已经有一个python应用程序使用slack进行基于誓言的登录,所以我刚刚修改了它,但是使用python slackclient,代码如下所示:

    SlackClient(“您的api令牌”).api\u调用( “oauth.access”, client\u id=“您的应用程序客户端id”, client\u secret=“您的应用程序客户端密码”, code=“代码令牌”)

  • 我认为它是这样工作的,因为第三方集成只需为每个团队存储bot\u access\u令牌,然后再使用它。在我的例子中,我只是想为我的应用程序将bot访问令牌填充一个环境变量,它永远不会在publicslack应用程序目录中。我想知道一个更简单的方法来获取机器人访问令牌,所以如果你找到了,请告诉我。希望这对你有用,安德鲁