PHP에서 슬랙에 투고하는 메시지를 만드는 반을 만들어 봤습니다.

8808 단어 PHPSlack
개시하다
YYPHP Advent Calendar 2018 제가 7일째 책임지는 거예요@nobuhiro-kobayashi!!
최근 1년가량 슬랙을 마구잡이로 쓸 기회가 늘었지만, 프로그램에서 사용해본 적이 없어 메시지를 보내는 PHP반을 만들어 봤다.
각양각색의 사람들이 실시하고 있지만 동시에 연습도 해야 한다.
Slack 설정
로그인 작업공간
작업공간로그인에 있습니다.
※ 제작부터 진행하고 싶은 사람은 여기.부터 시작하세요.

로그인 후 로그인Slack App 카탈로그합니다.
오른쪽 상단에 작업공간 이름이 있는지 확인하십시오.

Incoming WebHook 추가
이렇게 하면 외부 서비스에서 슬랙에 메시지를 보낼 수 있다.
검색 창에 "Incoming WebHook"을 입력하여 검색하고 프롬프트를 표시하면 을 클릭합니다.

수신자 채널 지정

이전에 설정한 작업공간에 등록된 채널이 선택 상자에 표시됩니다. 원하는 채널을 선택하십시오.
선택한 후 아래의 "Incoming Webhook 포인트 추가"를 클릭합니다.

웹 훅 URL 가져오기
아래로 스크롤하면 '포인트 설정' 이라는 제목이 있습니다.
슬랙에서 투고할 때 필요한 웹훅 URL이 기재되어 있으므로 저장하십시오.

설정이 완료되면 지정된 채널에 정보가 표시됩니다.

위 슬랙 측 설정 완료!!
PHP
이번에는 사용자 이름, 아이콘, 메시지의 세 개를 투고해 봤다.
다양한 설정을 할 수 있으니 다음에 추가해 보자.
Incoming WebHooks 참조
<?php
// メッセージ送信用
class SlackSender
{
    /**
     * @var string
     */
    private $webHookUrl;
    /**
     * @var []
     */
    private $data;

    public function __construct(string $webHookUrl)
    {
        $this->webHookUrl = $webHookUrl;
    }
    public function userName(string $userName)
    {
        $this->data['username'] = $userName;

        return $this;
    }
    public function text(string $text)
    {
        $this->data['text'] = $text;

        return $this;
    }
    public function iconEmoji(string $emoji)
    {
        $this->data['icon_emoji'] = $emoji;

        return $this;
    }
    public function post()
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->webHookUrl);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, 'payload=' . urlencode(json_encode($this->data)));
        curl_exec($ch);
        curl_close($ch);
    }
}

// 呼び出し
$url = "https://hooks.slack.com/services/XXXX/"; // 各自設定してください
$slackClient = new SlackSender($url);
$slackClient->userName('ビードル')
            ->iconEmoji(':bug:')
            ->text('PHPから投稿したよ')
            ->post();
실행 결과

총결산
이번이 내 인생에서 처음으로 advent 달력에 참가한 것이다.
간단한 내용이라도 기사로 쓰기는 어렵다.
매일 기사를 써주시는 여러분께 정말 감사드립니다.
내일 8일째YYPHP Advent Calendar 2018@clown0082선생님의 투고입니다!!

좋은 웹페이지 즐겨찾기