/** * {@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); } }