首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Slack PHP响应

Slack PHP响应
EN

Stack Overflow用户
提问于 2017-12-12 16:52:18
回答 2查看 888关注 0票数 0

我正在使用PHP在Slack和Filemaker之间进行集成。我成功地让代码根据json请求在Filemaker中创建了一条记录,并且将质询密钥返回给Slack也没有问题。

然而,在将挑战传递回Slack时,我遇到了将头响应200OK传递给Slack的问题。看起来只能是其中之一。

我尝试将HTTP头移动到代码中的不同区域,但到目前为止还没有成功。

下面是当前的代码:

代码语言:javascript
复制
<?php



$data = json_decode(file_get_contents('php://input'), true);

if (!isset($data["challenge"])) {
    $body = $_SERVER['HTTP_X_SLACK_RETRY_REASON'];


    require_once ('Filemaker.php');

    //$body = file_get_contents('php://input');




    $fm = new Filemaker();
    $fm->setProperty('database', '');
    $fm->setProperty('username', '');
    $fm->setProperty('password', '');



    $command = $fm->newPerformScriptCommand('PHP_RESPONSE', 'script', $body);
    $result = $command->execute();

}

else {

    header("Content-Type: text/plain");
    header('X-PHP-Response-Code: 200', true, 200);
    echo $data["challenge"];
}

?>

我期望的结果是代码返回Slack的挑战代码,同时还返回一个200OK的HTTP头。

目前我可以看到我从Slack收到了一个"http_error“的错误,这让我相信问题是报头没有被成功传回。

任何关于错误之处的想法,或者关于正确方向的建议,都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2017-12-13 08:07:50

之所以会出现这个问题,是因为对于事件,slack在发送事件时不会将“挑战”作为参数发送。看起来只有在最初设置事件API的URL时才需要回显"challenge“。

我将挑战回显封装在一个if语句中,该语句仅在挑战变量存在的情况下触发。完成此操作后,成功通过了200OK。

下面是我用来解决这个问题的代码:

代码语言:javascript
复制
$data = json_decode(file_get_contents('php://input'), true);
if (isset($data["challenge"])) {
    $message = [
        "challenge" => $data["challenge"]
    ];

    header('Content-Type: application/json');
    echo json_encode($message);
}
票数 1
EN

Stack Overflow用户

发布于 2017-12-13 00:52:56

在这个主题上,documentation实际上有点不一致。它声称您可以在计划文本中响应挑战,但该示例将其显示为x-www-form-urlencoded。

为了安全起见,请尝试将挑战作为JSON返回。这对我来说非常有效。您也不需要显式设置HTTP 200代码。

示例代码:

代码语言:javascript
复制
$message = [
    "challenge" => $data["challenge"]
];  
header('content-type: application/json');
echo json_encode($message);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47768505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档