php - 如何使用 php 处理 outgoing-webhook (Slack)

标签 php html webhooks slack

我已经配置了 Slack outgoing-webhook,但我不确定如何处理 Slack 发送到我指定的 URL 的 HTTP POST 请求。 工作流程是这样的。当有人向指定 channel 发送消息时,API 将向指定 URL 之一发送 HTTP POST 请求(我可以在该 URL 上使用该 POST 执行某些操作)。 目前我无法在我的 PHP 代码中处理该请求。 我使用了下面的代码,因为它适用于由表单制作的 POST。

<?php
    if(isset($_POST['text'])){ echo $_POST['text'];}
?>

但它不起作用。当我从 API 接收 POST 时,我需要处理此请求以从中获取数据。

我们将不胜感激任何帮助。

最佳答案

假设您的脚本可以通过公共(public) URL 访问并在 Slack 中正确配置为 outgoing webhook (记住你需要一个触发词或配置一个公共(public) channel )它将收到 Slack 请求。可以像通过超全局 $_POST 一样访问 Slack 参数,但是您的 echo 命令将不起作用。

如果您想将消息发回 Slack,您需要使用 Slack 格式的消息。这是一个例子:

$message = ["text" => "Hello Slack"];
echo json_encode($message);

但是要小心。如果您已将 webhook 配置为监听 channel ,则向 Slack 发回消息将再次触发 webhook 并创建循环。因此,仅当您已将 webhook 配置为监听触发词时才这样做。

或者如果你只是想看看有没有收到,我会建议把它写成一个日志,这样你以后可以查看。这里有一个非常简单易用的Logger对于 PHP。它没什么特别的,但非常适合小型项目和测试。或者使用 Monolog ,一个流行的 PHP 记录器。

关于php - 如何使用 php 处理 outgoing-webhook (Slack),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42419340/

相关文章:

php - 获取重复行的记录 ID

javascript - 如何通过 GM_xmlhttpRequest 发送 bool 值?

调用 header 时出现 PHP AJAX 12017 错误(位置 :)

forms - 大型表单的 CSS 设计 - 设计建议

javascript - 在 Dialogflow v2 中使用 Node.js Webhook 自定义快速回复

ruby-on-rails - 如何正确验证 Rails 中的 webhook url?

php - MYSQL 时间戳在插入时为空

javascript - 如何在不提交表单的情况下将 enter 键转换为 tab 键

html - 在现有的 div 区域中放置一个 JavaScript block

php - Shopify Webhooks 到 Laravel 路线