슬랙의 가시성 향상을 위해 "아이콘 이미지 설정"을 일괄 적으로 촉구

Slack에서 아이콘의 의미





들어있는 채널의 수가 증가하면,
모든 게시물을 보는 것만으로도 상당한 노력이 됩니다.
아이콘 이미지는 발언의 중요성과 긴급성을 인식하는 「시인성」을 구성하는 중요한 요소가 됩니다.

기본 아이콘 폐해


  • 발언에 대해 '가중치'를 할 수 없고 게시물을 조사하는 노력이 발생한다
  • 비슷한 아이콘이므로 발언자를 잘못합니다
  • 사양에서 기본 아이콘 자체가 크게 변경 될 수 있음

  • 아이콘 설정에 심리적 장애



    애초에 왜 아이콘을 설정하지 않는 사람이 있습니까?
    시인성을 낮춰준다! 라는 생각으로 아이콘을 미설정으로 하는 사람은 없다고 생각합니다.
    대부분은 다음과 같은 이유라고 생각합니다.
  • 비즈니스 도구에서 어떤 이미지를 아이콘으로 사용할 수 있는지 모르겠습니다
  • 그렇다고 셀카를 업하는 것은 부끄럽다

  • 특히 팀에 조인했을 때,
    "아이콘 이미지 따위 설정하고 장난스럽다"고 생각되는 것은? 라고 생각하는 사람도 있을 것입니다.

    아이콘 설정을 촉구합니다.



    「slack아이콘 설정 부탁합니다」라고 한마디 멘션을 날려주면 만사 해결입니다.
    하지만 멤버가 늘어날 때마다 멘션을 보내는 건 그리워하지 않습니다.
    「아이콘 이미지 미설정 유저 일람」을 취득하는 방법은 없습니까?

    slackAPI Users.list 사용



    Users.list 에서 사용자에 대한 정보를 얻을 수 있습니다.
    아이콘을 설정한 사용자는 profile 안에 is_custom_image 라는 속성을 갖게 됩니다.


    1. users.list 에서 모든 사용자 정보 얻기
    2. bot 및 게스트 사용자 제외
    3. is_custom_image 없는 사용자의 ID 추출
    4. 추출한 유저들에게 멘션을 붙여 메시지를 투고한다.



    라는 흐름으로 해결할 수 있습니다.

    ※이것보다 아래는 구체적인 코드의 이야기가 됩니다.
    ※사용하는 코드의 전문은 github 에 공개하고 있습니다.
    ※ 실행 환경으로 Google AppsScript를 사용합니다.
    GAS에 대한 자세한 설명은 생략하므로 라이브러리나 스크립트의 설정 순서 등은 다른 기사을 참조하십시오.

    구현 방법



    1. 일람 취득


        var token = PropertiesService.getScriptProperties().getProperty('OAuth_token');
        var slackapp = SlackApp.create(token);
        var membersList = slackapp.usersList().members;
    

    앞서 소개한 Users.list 를 사용하기만 하면 됩니다.

    2. bot 및 손님 제외


        membersList.forEach(function(m) {
            // is_restricted 以外にすることで multi-channel guest を除外
            // is_ultra_restricted 以外にすることで single channel guest を除外
            // 詳細は https://api.slack.com/types/user を参照
            if (!m.deleted && !m.is_bot && m.id !== "USLACKBOT" && !m.profile.is_custom_image 
                && !m.is_restricted && !m.is_ultra_restricted) {
                    defaultIconUsers.push(m.id)
                };
            })
    

    코멘트에도 기재하고 있습니다만, is_restrictedis_ultra_restricted 를 참조하는 것으로 게스트 유저를 제외할 수가 있습니다.
    이 근처의 판정 조건은 실정에 따라 적절히 변경해 주십시오.

    3. 게시 메시지 만들기


        var message = ""
        if (defaultIconUsers.length > 0) {
            message = "視認性向上のためアイコン画像の設定をお願いします\n"
            defaultIconUsers.forEach(function(d) {
                message += "<@" + d + ">"
        })} else {
            message = "アイコン画像を設定していないユーザーは居ません"
        }
        slackapp.postMessage(channelId, message);
    

    판정 결과에 따라 조건 분기 후 메시지를 작성하여 게시라는 흐름입니다.
  • 기본 아이콘 사용자 있음
  • 없음

  • 구현 순서는 이상입니다.



    slack상에서 외부의 고객(관련회사)과의 교환이 많은 회사에서는,
    아이콘 이미지의 설정이 매우 중요하고, 설정할 때까지 주의 환기되어 계속된다는 곳도 있는 것 같습니다.

    몇 달에 한 번 이 스크립트를 정기 실행하는 것만으로도, slack의 시인성이 향상해 주는 것이라고 생각하고 있습니다.

    정독 해 주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기