我正在研究一个小的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,但必须采用特定格式。有关详细信息,请参见此文档。