松弛消息对话框的卷曲呼叫

时间:2018-02-12 11:44:08

标签: php slack slack-api

任何人都可以在PHP中给我一个松弛消息对话框的例子吗?如何对dialog.open方法进行curl调用?请建议。

1 个答案:

答案 0 :(得分:1)

以下是PHP中有关如何基于斜杠命令创建Dialog的简单示例。

请注意,您需要先创建并安装documentation。您还需要向Slack应用程序添加Slack App,该应用程序需要调用此脚本。最后,您需要手动将Slack应用中的 OAuth访问令牌添加到此脚本(替换YOUR_TOKEN)。

该脚本将在Slack通道中打印API响应,因此您可以进行响应以及是否有任何错误。

执行斜杠命令以运行对话框。

// define the dialog for the user (from Slack documentation example)
$dialog = [
  'callback_id' => 'ryde-46e2b0',
  'title' => 'Request a Ride',
  'submit_label' => 'Request',
  'elements' => [
    [
      'type' => 'text',
      'label' => 'Pickup Location',
      'name' => 'loc_origin'
    ],
    [
      'type' => 'text',
      'label' => 'Dropoff Location',
      'name' => 'loc_destination'
    ]
  ]
];

// get trigger ID from incoming slash request
$trigger = filter_input(INPUT_POST, "trigger_id");

// define POST query parameters
$query = [
    'token' => 'YOUR_TOKEN',
    'dialog' => json_encode($dialog),
    'trigger_id' => $trigger
];

// 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);