/**
* @param \T3Bot\Slack\Message|string $messageToSent
* @param string $user
* @param string $channel the channel id
*/
public function sendResponse($messageToSent, $user = null, $channel = null)
{
$data = [];
if ($user !== null) {
$this->client->apiCall('im.open', ['user' => $user])->then(function (Payload $response) use($messageToSent) {
$channel = $response->getData()['channel']['id'];
if ($messageToSent instanceof Message) {
$data = [];
$data['unfurl_links'] = false;
$data['unfurl_media'] = false;
$data['parse'] = 'none';
$data['text'] = $messageToSent->getText();
$data['channel'] = $channel;
$attachments = $messageToSent->getAttachments();
if (count($attachments)) {
$data['attachments'] = array();
}
/** @var \T3Bot\Slack\Message\Attachment $attachment */
foreach ($attachments as $attachment) {
$data['attachments'][] = Attachment::fromData(['title' => $attachment->getTitle(), 'title_link' => $attachment->getTitleLink(), 'text' => $attachment->getText(), 'fallback' => $attachment->getFallback(), 'color' => $attachment->getColor(), 'pretext' => $attachment->getPretext(), 'author_name' => $attachment->getAuthorName(), 'author_icon' => $attachment->getAuthorIcon(), 'author_link' => $attachment->getAuthorLink(), 'image_url' => $attachment->getImageUrl(), 'thumb_url' => $attachment->getThumbUrl()]);
}
$message = new \Slack\Message\Message($this->client, $data);
$this->client->postMessage($message);
} elseif (is_string($messageToSent)) {
$data = [];
$data['unfurl_links'] = false;
$data['unfurl_media'] = false;
$data['parse'] = 'none';
$data['text'] = $messageToSent;
$data['channel'] = $channel;
$data['as_user'] = true;
$this->client->apiCall('chat.postMessage', $data);
}
});
} else {
$channel = $channel !== null ? $channel : $this->payload->getData()['channel'];
if ($messageToSent instanceof Message) {
$data['unfurl_links'] = false;
$data['unfurl_media'] = false;
$data['parse'] = 'none';
$data['text'] = $messageToSent->getText();
$data['channel'] = $channel;
$attachments = $messageToSent->getAttachments();
if (count($attachments)) {
$data['attachments'] = array();
}
/** @var \T3Bot\Slack\Message\Attachment $attachment */
foreach ($attachments as $attachment) {
$data['attachments'][] = Attachment::fromData(['title' => $attachment->getTitle(), 'title_link' => $attachment->getTitleLink(), 'text' => $attachment->getText(), 'fallback' => $attachment->getFallback(), 'color' => $attachment->getColor(), 'pretext' => $attachment->getPretext(), 'author_name' => $attachment->getAuthorName(), 'author_icon' => $attachment->getAuthorIcon(), 'author_link' => $attachment->getAuthorLink(), 'image_url' => $attachment->getImageUrl(), 'thumb_url' => $attachment->getThumbUrl()]);
}
$message = new \Slack\Message\Message($this->client, $data);
$this->client->postMessage($message);
} elseif (is_string($messageToSent)) {
$data['unfurl_links'] = false;
$data['unfurl_media'] = false;
$data['parse'] = 'none';
$data['text'] = $messageToSent;
$data['channel'] = $channel;
$data['as_user'] = true;
$this->client->apiCall('chat.postMessage', $data);
}
}
}