슬랙에서 근태 관리하고 시각화

이것이 있으면 대개 할 수 있습니다.



webserver+php+postgreSQL, 자주 사용하는 것은 PHP의 정규 표현, 나중에 javascript를 조금입니다. 그리고는 Slack에서 Custom Integration을 사용할 수 있는 것.

Postgres에 DB · Table 준비



근태 등록용과 유급 관리, 캘린더 마스터 정도가 있으면 k
운용에 의합니다만, 지금의 회사에서는 플렉스의 예실 관리와, 지각 조퇴 관리, 주휴일, 재택등이 관리되고 있으므로, 꽤 큰 테이블이 되어 버렸습니다.

덧붙여서 근태 등록용의 테이블 정의입니다.


Slack에 근태 전용 Channel 만들기



근태에 관한 모든 입력은 여기에 작성
제 사내에서는 timesheet라고 하는 Channel에 등록해 주기로 하고 있습니다.
아침의 느낌↓(우연히 아침 이른 날이었습니다)


Slack의 OutgoingWebhacks에서 입력한 단어를 페이지로 보내기



Customize Slack→Configure Apps→Custom Integrations에서 이 페이지로 이동합니다.


특히 트리거는 설정하지 않고, 모두를 수락의 php에 송신한다


php로 근태 명령과 일치하는지 여부를 결정합니다.



대략 커맨드로서는 20개위・・・


명령에 따라 DB에 등록



우선 POST 된 단어를 잡아,

worktime.php
// 受信文字列取得mainmethod
if($_POST["user_name"] != "slackbot"){
    $rcvtext = $_POST["text"];
    $rcvtext = mb_convert_kana($rcvtext,'a');//「全角」英数字を「半角」に変換
    $rcvtext = str_replace(':',':',$rcvtext);//「全角」:を「半角」に変換
    $rcvtext = str_replace('/','/',$rcvtext);//「全角」/を「半角」に変換
    //どのコマンドか判別する
    $analyzetext = analyzeCommand($_POST["user_name"],$rcvtext);

적인 곳에서 판별 방법으로 날린다.

여기에서 노도의 preg_match() 축제이다.
연휴 지정용으로 2개의 일자의 판별, 플렉스용으로 2개의 시각의 판별, 가동일인가 어떤가의 판별등・・・.
다양한 커맨드 판정·일시의 판정을 클리어 해, Insert, Update를 깜짝 놀라 간다.

결과를 Slack의 IncomingWebhacks로 반환



Webhook URL을 생성하여 제출 시 URL로 지정


이런 느낌이다.

worktime.php

        // [Webhook URL]欄に表示されているURL
        $webhook_url ='https://hooks.slack.com/services/XXXXXXX/XXXXXXXXX/XXXXXXXXXXXXX';
        // Slackに投稿するメッセージ
        $msg = array(
            'username' => $username,
            'text' => "<@".$_POST["user_name"].">  ".$analyzetext,
            'icon_url' => $icon_url);
        $msg = json_encode($msg);
        $msg = 'payload=' . urlencode($msg);

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $webhook_url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $msg);
        curl_exec($ch);
        curl_close($ch);
}

보낼 수 있으면 이름 뒤에 APP라고 쓰여 있는 Bot 틱한 녀석(제대로 지정하고 있지만)이 회신한 것처럼 보인다.


명령에 걸리지 않았다면 어딘가의 AIBot 씨에게 회신을 대신 부탁드립니다.

궁극적으로 BI 도구의 근태 대시 보드를 만들고 시각화



와우… 내 근무시간, 너무 부족… (입력하지 않을 뿐이라고 말할 가능성도 미미한 존재)



이쪽을 참고로 했습니다.

채팅으로 근태 관리하는 "미야모토 씨"를 발표했습니다.
htp : // bg. 점점 더 ゔぇ. jp/2014/10/19/미야모토-씨/

좋은 웹페이지 즐겨찾기