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

时间:2017-02-23 15:03:03

标签: php html webhooks slack

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

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

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

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

假设您的脚本可通过公共URL访问并在Slack中正确配置为outgoing webhook(请记住您需要触发字或配置公共信道),它将收到Slack请求。 Slack参数可以像通过超全局public Image byteArrayToImage(byte[] byteArrayIn) { using (var ms = new MemoryStream(byteArrayIn)) { return Image.FromStream(ms); } } 那样访问,但是你的echo命令不起作用。

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

$_POST

但要小心。如果您已将webhook配置为侦听向Slack发回消息的频道,则会再次触发webhook并创建循环。因此,只有在将webhook配置为侦听触发词时才会这样做。

或者,如果您只是想看到已收到的想法,我建议将其写入日志,以便您以后查看。这是一个非常简单易用的PHP Logger。它没什么特别的,但适用于小型项目和测试。或者使用Monolog,一种流行的Logger for PHP。