使用 Slack 斜杠命令找不到触发器 ID?
Trigger ID not found with Slack slash command?
我的目标是能够使用斜杠命令打开对话框并将反馈处理到数据库中。我试图让对话框打开,但收到有关斜线命令的错误,其中显示 "trigger_id" 未找到。
- 我的应用设置了 API 和正确的 OAuth。
- 我使用 php 页面的 url 向我的应用添加了一个斜杠命令(域。com/slash.php)
- 斜杠命令是用下面的代码设置的。
当我从 slack 中 运行 时,我得到
的输出
'{"ok":false,"error":"invalid_arguments","response_metadata":{"messages":["[ERROR] missing required field: trigger_id"]}}'
调试了一下,把trigger_id输出到屏幕上,发现trigger_id确实是null。我错过了什么才能通过这个?
我承认我是松弛领域的新手。我已经按照(我认为)松弛网站上关于正确设置应用程序的文档进行操作。
我是不是在我的 slack 应用程序设置中遗漏了什么,或者我的代码中有什么导致了这个错误消息?
提前感谢您的宝贵时间!
<?
$command = $_POST['command'];
$text = $_POST['text'];
$token = $_POST['token'];
$cn = $_POST['channel_id'];
$user_id = $_POST['user_id'];
$triggerid = $_POST['trigger_id'];
// define the dialog for the user (from Slack documentation example)
$dialog = [
'callback_id' => 'validres-3100',
'title' => 'Test',
'submit_label' => 'Submit',
'elements' => [
[
'type' => 'text',
'label' => 'Test Field 1',
'name' => 'field_1'
],
[
'type' => 'text',
'label' => 'Test Field 2',
'name' => 'field_2'
]
]
];
// define POST query parameters
$query = [
'token' => '<my api auth code>',
'dialog' => json_encode($dialog),
'trigger_id' => $triggerid
];
// define the curl request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://slack.com/api/dialog.open');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// set the POST query parameters
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($query));
// execute curl request
$response = curl_exec($ch);
// close
curl_close($ch);
var_export($response);
?>
要在 Slack 中打开对话框,您可以使用此 api“https://slack.com/api/views.open”。
使用 api 您需要发送触发器 ID,该 ID 仅在 3 秒内有效。
您的 url 将如下所示:
"https://slack.com/api/views.open?trigger_id=" + "xxxx.xxxxxxxxx.xxxxxxxxxxxx" + "&view=你的数据"。
对于此请求,您需要使用 post 请求发送令牌,例如:-
(URL,"POST", { "token" ,"xoxb-xxxxxx-xxxxx-xxxxxxx"});
需要在您的 slack 应用程序中添加 view.open API 也可以使用以下步骤:
使用 "Bot User OAuth Access Token" ,在 "OAuth and permissions Tab" 中格式为 xoxb-xxxxx-xxxxx-xxxx。然后添加 scope "views:open" 并在 slack 中重新安装您的应用程序。然后尝试打开视图对话框。
希望这会有所帮助。
我的目标是能够使用斜杠命令打开对话框并将反馈处理到数据库中。我试图让对话框打开,但收到有关斜线命令的错误,其中显示 "trigger_id" 未找到。
- 我的应用设置了 API 和正确的 OAuth。
- 我使用 php 页面的 url 向我的应用添加了一个斜杠命令(域。com/slash.php)
- 斜杠命令是用下面的代码设置的。
当我从 slack 中 运行 时,我得到
的输出'{"ok":false,"error":"invalid_arguments","response_metadata":{"messages":["[ERROR] missing required field: trigger_id"]}}'
调试了一下,把trigger_id输出到屏幕上,发现trigger_id确实是null。我错过了什么才能通过这个?
我承认我是松弛领域的新手。我已经按照(我认为)松弛网站上关于正确设置应用程序的文档进行操作。
我是不是在我的 slack 应用程序设置中遗漏了什么,或者我的代码中有什么导致了这个错误消息?
提前感谢您的宝贵时间!
<?
$command = $_POST['command'];
$text = $_POST['text'];
$token = $_POST['token'];
$cn = $_POST['channel_id'];
$user_id = $_POST['user_id'];
$triggerid = $_POST['trigger_id'];
// define the dialog for the user (from Slack documentation example)
$dialog = [
'callback_id' => 'validres-3100',
'title' => 'Test',
'submit_label' => 'Submit',
'elements' => [
[
'type' => 'text',
'label' => 'Test Field 1',
'name' => 'field_1'
],
[
'type' => 'text',
'label' => 'Test Field 2',
'name' => 'field_2'
]
]
];
// define POST query parameters
$query = [
'token' => '<my api auth code>',
'dialog' => json_encode($dialog),
'trigger_id' => $triggerid
];
// define the curl request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://slack.com/api/dialog.open');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// set the POST query parameters
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($query));
// execute curl request
$response = curl_exec($ch);
// close
curl_close($ch);
var_export($response);
?>
要在 Slack 中打开对话框,您可以使用此 api“https://slack.com/api/views.open”。 使用 api 您需要发送触发器 ID,该 ID 仅在 3 秒内有效。 您的 url 将如下所示: "https://slack.com/api/views.open?trigger_id=" + "xxxx.xxxxxxxxx.xxxxxxxxxxxx" + "&view=你的数据"。 对于此请求,您需要使用 post 请求发送令牌,例如:- (URL,"POST", { "token" ,"xoxb-xxxxxx-xxxxx-xxxxxxx"});
需要在您的 slack 应用程序中添加 view.open API 也可以使用以下步骤: 使用 "Bot User OAuth Access Token" ,在 "OAuth and permissions Tab" 中格式为 xoxb-xxxxx-xxxxx-xxxx。然后添加 scope "views:open" 并在 slack 中重新安装您的应用程序。然后尝试打开视图对话框。
希望这会有所帮助。