/**
  * {@inheritdoc}
  */
 protected function createPayload()
 {
     $payload = new ChatPostMessagePayload();
     $payload->setChannel('#acme_channel');
     $payload->setUsername('acme_user');
     $payload->setText('Hello World!');
     $payload->setIconEmoji(':truck:');
     $payload->setLinkNames(true);
     $payload->setParse('full');
     $payload->setUnfurlLinks(true);
     $payload->setUnfurlMedia(false);
     $payload->setIconUrl('http://foo.bar/emoji-1.png');
     $fakeAttachmentField = new AttachmentField();
     $fakeAttachmentField->setShort(false);
     $fakeAttachmentField->setTitle('the title');
     $fakeAttachmentField->setValue('the value');
     $fakeAttachment = new Attachment();
     $fakeAttachment->setTitle('the title');
     $fakeAttachment->setTitleLink('http://thetitlelink.com');
     $fakeAttachment->setColor('the color');
     $fakeAttachment->setFallback('the fallback');
     $fakeAttachment->setImageUrl('the image url');
     $fakeAttachment->setPreText('this is...');
     $fakeAttachment->setText('my attachment');
     $fakeAttachment->setAuthorIcon(':skull:');
     $fakeAttachment->setAuthorName('the author');
     $fakeAttachment->setAuthorLink('http://theauthor.com');
     $fakeAttachment->addField($fakeAttachmentField);
     $payload->addAttachment($fakeAttachment);
     return $payload;
 }
 /**
  * @param string $channel
  * @param string $message
  * @param Attachment[] $attachments
  */
 public function sendToChannel($channel, $message, $attachments = [])
 {
     if ('prod' !== $this->kernel->getEnvironment()) {
         $channel = "#website-nl";
     }
     $payload = new ChatPostMessagePayload();
     $payload->setChannel($channel);
     $payload->setText($message);
     $payload->setUsername('DojoBot');
     $payload->setIconEmoji('coderdojo');
     if (false === empty($attachments)) {
         foreach ($attachments as $attachment) {
             $payload->addAttachment($attachment);
         }
     }
     $this->client->send($payload);
     return;
 }
 protected function notifySlack($message, $project, $env, $user, $resolverArray, $color = "#FFCC00", $update = false)
 {
     if ($update) {
         $payload = new ChatDeletePayload();
         $payload->setSlackTimestamp($this->ts);
         $payload->setChannelId($this->channel);
         $response = $this->slackApiClient->send($payload);
         if ($response->isOk()) {
             if ($response instanceof ChatPostMessagePayloadResponse) {
                 /** @var ChatPostMessagePayloadResponse $response */
                 $this->ts = $response->getSlackTimestamp();
             }
         } else {
             // something went wrong, but what?
             // simple error (Slack's error message)
             echo $response->getError();
             // explained error (Slack's explanation of the error, according to the documentation)
             echo $response->getErrorExplanation();
             exit(1);
         }
     }
     $payload = new ChatPostMessagePayload();
     $payload->setChannel("#" . getenv("slack_channel"));
     $payload->setIconUrl("https://www.dropbox.com/s/ivrj3wcze7cwh54/masterjenkins.png?dl=1");
     $payload->setUsername("Master Jenkins");
     $attachment = new Attachment();
     $attachment->setColor($color);
     $attachment->setFallback("[" . $project . "#" . getenv("BUILD_NUMBER") . " - branch *" . getenv("GIT_BRANCH") . "* to *" . $env . "* by _" . $user . "_] " . $message);
     $attachment->setText("[" . $project . "#" . getenv("BUILD_NUMBER") . " - branch *" . getenv("GIT_BRANCH") . "* to *" . $env . "* by _" . $user . "_] " . $message . "\n<" . getenv("BUILD_URL") . "console|Jenkins Console> - <" . getenv("BUILD_URL") . "changes|Changes>" . (isset($resolverArray["shared_package_target"]) && file_exists($resolverArray["shared_package_target"]) ? " - <" . $resolverArray["shared_package_url"] . "|Download>" : ""));
     $payload->addAttachment($attachment);
     $response = $this->slackApiClient->send($payload);
     if ($response->isOk()) {
         if ($response instanceof ChatPostMessagePayloadResponse) {
             /** @var ChatPostMessagePayloadResponse $response */
             $this->ts = $response->getSlackTimestamp();
             $this->channel = $response->getChannelId();
         }
     } else {
         // something went wrong, but what?
         // simple error (Slack's error message)
         echo $response->getError();
         // explained error (Slack's explanation of the error, according to the documentation)
         echo $response->getErrorExplanation();
         exit(1);
     }
 }