slack api로 dm 보내기

소개



slack은 UI가 잘 변경되었으므로 최신 정보가별로 없었습니다.
따라서 자신을 위해 메모를 남깁니다.
2021/2/5의 정보입니다.

추가



slacker는 더 이상 업데이트되지 않았기 때문에 파이썬 슬랙 SDK을 사용하는 방법을 설명합니다.
pip install slack_sdk

절차 1 작업 공간에 앱을 추가합니다.



htps : // 아피. scck. 이 m/아 ps/
에 액세스하고 로그인합니다.





Create New APP에서
  • 앱 이름
  • 설치할 작업 공간을 선택합니다.

  • 2 단계 Permissions 추가.



    Permissions 선택


    BOT로 게시하면 BOT Token Scopes
    사용자로 게시하려면 User Token Scopes를 선택하십시오.



    이번은 BOT로 진행합니다.



    이러한 Permission을 추가하십시오. (불필요한 것이 섞여 있을지도..)

    완료 후 설치합니다.


    액세스 토큰을 복사합니다.


    3 단계 users_list, user_id를 얻습니다.



    처음 사용하는 것은 users.list의 api입니다.
    액세스하여 이전 토큰을 붙여 넣으십시오.



    "ok"true가 되어 있으면 성공입니다.
    Shizuzu와 회원 목록이 반환되었습니다. 이대로는 보기 힘들기 때문에 Python을 사용하여 가공합시다.

    환경입니다.
    ❯❯❯ python --version
    Python 3.7.4
    
    ❯❯❯ which python
    /Users/kyohei/.pyenv/shims/python
    

    슬래커


    ❯❯❯ pip install slacker
    
    ❯❯❯ pip show slacker
    Name: slacker
    Version: 0.14.0
    以下略
    

    getid.py
    from slacker import Slacker
    
    token = "your access token"
    slacker = Slacker(token)
    
    res = slacker.users.list()
    for member in res.body['members']:
        print(member['name'])
        print(member['id'])
        print()
    

    주의점으로서, slacker의 응답에 액세스하기 위해서는, body를 경유하는 것입니다.
    자세한 내용은 slacker의 github을 참조하십시오.

    파이썬 슬랙 SDK



    getid.py
    from slack_sdk import WebClient
    
    token = "your access token"
    
    client = WebClient(token)
    res = client.users_list()
    
    for member in res['members']:
        print(member['name'])
        print(member['id'])
        print()
    
    

    Python Slack SDK는 res에 대해 body를 통과하지 않습니다.

    이제 작업 공간의 멤버 user_id를 얻을 수 있습니다.

    4 단계 DM을 보냅니다.



    DM을 보내려면 상대방과의 DM을 오픈합니다.

    옛 기사에서는 다른 m. 오펜을 사용하는 기사가 많은 것 같습니다만, deprecated(비추천)와 같습니다.

    지금 Ver 차지온 s. 오펜의 API를 사용합니다. 액세스하고 테스트합시다.

    users 필드에 이전에 파이썬으로 얻은 user_id를 입력하십시오.


    응답에 나온 id가 DM을 하기 위한 id가 됩니다.
    (user_id와 dm에 대한 channel_id를 구별하십시오)

    이것도 파이썬에서 가져옵니다.

    슬래커



    dm.py
    from slacker import Slacker
    
    token = "your access token"
    slacker = Slacker(token)
    user_id = "手順3で取得した user_id"
    message = "DMです."
    
    # DMを開く
    res = slacker.conversations.open(users=user_id)
    dm_id = res.body['channel']['id']
    
    # DMを送信する
    slacker.chat.post_message(channel=dm_id, text=message)
    

    파이썬 슬랙 SDK



    dm.py
    from slack_sdk import WebClient
    
    token = "your access token"
    
    client = WebClient(token)
    user_id = '手順3で取得した user_id'
    
    # DMを開き,channelidを取得する.
    res = client.conversations_open(users=user_id)
    dm_id = res['channel']['id']
    
    # DMを送信する
    client.chat_postMessage(channel=dm_id, text='DMです')
    

    이제 DM을 보낼 수 있습니다.
    그리고는 코드를 개량해, 일제 송신으로 하는 등으로 이용해 주세요.

    좋은 웹페이지 즐겨찾기