Slack对话框错误



我正在研究一个小的Slack应用程序开发。我陷入了一种情况。我正在使用Slack对话框获取用户的数据,当用户输入数据时然后单击提交按钮我会收到警报消息。我不知道什么是,为什么它发出警报。该怎么办?请注意我得到我的交互式组件脚本中的有效载荷响应。并用200响应服务器。这是我的响应代码:

 if($type == "dialog_submission")
 {
         http_response_code(200);
         return json_encode(array(
             'status' => 200,
             'message' => 'ok'
        ));
   $ch = curl_init("https://slack.com/api/chat.postMessage");
   $dataSet = http_build_query([
   "token" => $authToken,
   "channel" => $data['channel']['name'],
   "text" => "123",
   ]);
   curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
   curl_setopt($ch, CURLOPT_POSTFIELDS, $dataSet);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
   $result = curl_exec($ch);
   curl_close($ch);
   echo $result;
    }

警报消息的屏幕截图

尝试类似:

if($type == "dialog_submission") {
  return json_encode(array(
    'status' => 200,
    'message' => ''
  ));
}

您需要返回空心对话框的空响应,否则您将获得错误

我们在连接方面遇到了一些麻烦。再试一次?

因此,您必须在某个地方具有回声,该回声将某些内容返回到Slack对话框中,从而导致错误。您需要删除这些。就像末尾的echo $result;一样。

如果您的脚本有运行时错误,也将发生此错误,因为然后将创建一个自动响应,例如" test.php行101中的错误"。要检查该检查,请确保您的记录已被激活并检查日志文件中是否有任何错误。

您通过将这些命令放在脚本的开头来激活错误记录:

ini_set("log_errors", 1);
ini_set("error_log", "php-errors.log");

但是,您可以将验证错误返回到Slack,但必须采用特定格式。有关详细信息,请参见此文档。

最新更新