Slack API를 시작하는 방법을 요약했습니다.

Slack API를 시작하는 방법을 요약했습니다.



목차


  • Slack에 앱 등록
  • Slack App 만들기
  • Slack API를 사용하여 메시지를 게시합니다.

  • ※ 루비 사용

    Slack에 앱 등록



    브라우저에서 다음 페이지에서 Slack API에 로그인합니다.
    htps : // s ck. 코 m/시 g 마늘

    개발을 위한 작업 공간 만들기



    로그인이 끝나면 다음 페이지에서 개발 테스트를위한 작업 공간을 만듭니다.

    먼저 + Create a New Workspace를 클릭하십시오.


    만들 작업 공간의 이름을 듣기 때문에 원하는 이름을 입력하고 Next를 클릭합니다.
    (필자는 'development'라는 이름으로 설정)


    그런 다음 작업 공간을 사용하는 목적을 묻는 메시지를 입력하고 Next를 클릭하십시오.
    (필자는 『slack api』라고 기술)


    그런 다음 초대할 멤버를 듣기 때문에 무시하고 Skip this step를 클릭합니다.


    이것으로 작업 공간 작성이 완료되었습니다.

    슬랙 앱 만들기



    1. Slack App 만들기



    브라우저에서 다음 페이지에서 Slack App을 만듭니다.
    htps : // 아피. scck. 이 m/아 ps? 네 w_아 p=1


    앱 이름
    앱 이름을 임의로 입력
    ※ 나중에 변경 가능

    Development Slack Workspace
    앱을 적용 할 작업 공간 (이전에 만든) 선택
    ※ 나중에 변경 불가이므로 주의

    입력/선택 후 Create App를 클릭하십시오.

    2. Scopes에서 Slack 앱 권한 설정



    Permission를 클릭하여 이동

    Add an OAuth Scope를 클릭 한 후 chat:write를 선택하여 Scope를 추가합니다.
    (chat : write)는 Bot의 게시를 허용합니다.
    ※ 나중에 추가 가능

    3. 앱을 workspace에 설치




    Scope를 설정한 페이지와 같은 페이지에서,Install to Workspace를 클릭하여 Slack 앱을 작업 공간에 설치합니다.


    다음과 같은 페이지가 표시되므로 Allow를 클릭하십시오.
    (작업 공간 없이 앱을 실행해도 좋은지 확인하고 있습니다.)


    이것으로 작업공간에 앱 설치가 완료되었습니다.
    위의 Bot User OAuth Access Token 나중에 사용하기 때문에 참고.

    Slack API를 사용하여 메시지 게시



    1. Gemfile 추가



    Gemfile 만들기

    Gemfile
    source 'https://rubygems.org'
    
    gem 'http'
    gem 'json'
    
    $ bundle install
    

    2. 스크립트 실행을 위한 파일 준비



    test.rb
    require 'http'
    require 'json'
    
    BOT_USER_ACCESS_TOKEN="< 先ほどメモしたBot User OAuth Access Token をコピペ >"
    
    response = HTTP.post("https://slack.com/api/chat.postMessage", params: {
      token: BOT_USER_ACCESS_TOKEN,
      channel: '#random',
      text: 'hello slack',
      as_user: true
      })
    puts JSON.pretty_generate(JSON.parse(response.body))
    

    해설들이

    test.rb
    # Apiリクエスト送信に用いる
    require 'http'
    # Jsonデータ作成に用いる
    require 'json'
    
    # ACCESS_TOKENを設定
    # Scopeへのアクセスに利用する
    BOT_USER_ACCESS_TOKEN="< 先ほどメモしたBot User OAuth Access Token をコピペ >"
    
    # HTTPリクエストを特定にSlackApiのURLに送信する
    # chat.postMessage では投稿を作成する
    # paramsの中身は指定された値を渡す
    response = HTTP.post("https://slack.com/api/chat.postMessage", params: {
      token: BOT_USER_ACCESS_TOKEN,
      channel: '#random',
      text: 'hello slack',
      as_user: true
    })
    puts JSON.pretty_generate(JSON.parse(response.body))
    

    params 내용에 대해


    token
    인증 토큰 지정


    채널
    메시지를 게시할 채널 지정


    텍스트
    메시지 지정


    as_user
    true를 전달하면 인증된 사용자로 메시지가 게시됨


    자세한 것은 이 페이지에 기재되어 있습니다.
    htps : // 아피. scck. 코 m/메욘 ds/짱 t. 포스트 메시게

    이번에는 Messe를 게시하기 위해 chat.postMessage를 사용했지만 그 밖에도 다양한 api 메소드가 준비되어 있습니다.
    htps : // 아피. scck. 코 m / 메조 ds

    Bot을 채널에 초대하기




    Api로 메시지를 전송하는 데 사용되는 채널 메시지에서/invite @<Bot_Name>를 입력하여 Bot을 채널에 초대합니다.

    3. 실행



    다음 명령으로 스크립트 실행
    $ bundle exec ruby test.rb
    {
      "ok": true,
      "channel": "...",
      "ts": "...",
      "message": {
        "bot_id": "...",
        "type": "message",
        "text": "hello slack",
        "user": "...",
        "ts": "...",
        "team": "...",
        "bot_profile": {
          "id": "...",
          "deleted": false,
          "name": "test_app",
          "updated": ...,
          "app_id": "...",
          "icons": {
            "image_36": "https://a.slack-edge.com/80588/img/plugins/app/bot_36.png",
            "image_48": "https://a.slack-edge.com/80588/img/plugins/app/bot_48.png",
            "image_72": "https://a.slack-edge.com/80588/img/plugins/app/service_72.png"
          },
          "team_id": "..."
        }
      }
    

    실행 결과가 위와 같이 되어 있으면 성공입니다!

    슬랙을 확인합시다!

    반영되고 있네요, 이것으로 종료입니다.
    고마워요

    오류 정보



    오류에 대해 간단히 정리했으므로 참고로


    channel_not_found
    채널이 존재하지 않음


    not_authed
    인증 토큰이 설정되지 않았거나 잘못되었습니다.


    missing_scope
    범위 권한이 올바르게 설정되지 않은 설정을 변경하면 reinstall이 필요합니다.


    not_in_channel
    채널에 Bot이 추가되지 않음

    좋은 웹페이지 즐겨찾기