Exemple #1
0
 /**
  * @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);
         }
     }
 }