因此,在使用交互式消息时尝试从Slack获取有效负载时遇到了一些麻烦 . 我发送一个带按钮的消息 . 我已经正确设置了一切,Slack正好点击我的返回网址 .
问题是我不知道如何从请求中检索“有效负载”? Slack文档说:
“您的Action URL将收到HTTP POST请求,包括有效负载主体参数,其中包含application / x-www-form-urlencoded JSON字符串 . ”
我想我不知道这意味着什么 . 我认为这意味着你得到了一个“有效载荷”的POST变量,但事实并非如此 .
在Laravel中,我正在使用以下内容来尝试取回一些东西:
$request = Request::all();
$test = Response::json($request);
然后我发送给自己看看,结果如下:
object(Illuminate\Http\JsonResponse)#277 (10) {
["jsonOptions":protected]=>
int(0)
["data":protected]=>
string(2) "[]"
["callback":protected]=>
NULL
["encodingOptions":protected]=>
int(15)
["headers"]=>
object(Symfony\Component\HttpFoundation\ResponseHeaderBag)#332 (5) {
["computedCacheControl":protected]=>
array(1) {
["no-cache"]=>
bool(true)
}
["cookies":protected]=>
array(0) {
}
["headerNames":protected]=>
array(3) {
["cache-control"]=>
string(13) "Cache-Control"
["date"]=>
string(4) "Date"
["content-type"]=>
string(12) "Content-Type"
}
["headers":protected]=>
array(3) {
["cache-control"]=>
array(1) {
[0]=>
string(8) "no-cache"
}
["date"]=>
array(1) {
[0]=>
string(29) "Thu, 22 Jun 2017 04:51:13 GMT"
}
["content-type"]=>
array(1) {
[0]=>
string(16) "application/json"
}
}
["cacheControl":protected]=>
array(0) {
}
}
["content":protected]=>
string(2) "[]"
["version":protected]=>
string(3) "1.0"
["statusCode":protected]=>
int(200)
["statusText":protected]=>
string(2) "OK"
["charset":protected]=>
NULL
}
没有“Body Parameter”没有“Payload”变量 . 我真的很困惑 . 任何帮助,将不胜感激 .
1 回答
我可以确认Slack正在发送一个POST请求,其中包含一个有效负载参数 . 我不熟悉Laravel框架,但这是我在纯PHP中接收它的方式:
之后,
$payload
参数包含一个包含请求内容的数组 .如果我正确理解您的代码(前2行),您试图将整个请求解释为JSON,这将无效 . 您需要首先提取有效负载,然后将其从JSON解码为PHP对象 .
但是,我建议首先确保通过记录您收到的每个请求的内容(例如,记录
$_POST
的内容),在您的操作URL上收到Slack请求 .