【问题标题】:Slack Dialog gives an error松弛对话框给出错误
【发布时间】:2018-07-24 21:55:31
【问题描述】:

我正在开发一个小型 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;

    }

Screenshot of alert message

【问题讨论】:

  • 我看到 Slack 对话框在表单提交问题后没有关闭,但它在节点 js 中,无法在 PHP 中实现。我需要在我的 PHP 代码中做哪些修改来解决这个问题?

标签: php dialog slack slack-api php-curl


【解决方案1】:

尝试类似:

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

【讨论】:

    【解决方案2】:

    您需要向 Slack Dialog 返回一个空响应,否则您将收到错误消息

    我们在连接时遇到了一些问题。再试一次?

    因此,您必须在某个地方有一个回显,该回显将某些内容返回到导致错误的 Slack 对话框。你需要删除那些。就像最后的echo $result;。

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

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

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

    但是,您可以将验证错误返回给 Slack,但这些错误必须采用特定格式。详情请见this documentation。

    【讨论】:

    • 我评论说 chat.update 调用和 echo 语句 n 仅传递状态->200 响应但仍然无法正常工作。
    • 这也可能是由您的脚本中的运行时错误引起的。我将该信息添加到我的答案中
    猜你喜欢
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多