1:1 대화 방에 있는 자신의 대화 삭제 방법
1. 접속 후 로그인
2. 사이트 이동
3. 앱 생성
(1) 'Create an App' 클릭
(2) 'From scratch' 클릭
(3) 입력 필드 입력 후 'Create App' 클릭
- App name : 원하는 이름으로 지정
- Pick a workspace to develop your app in: 리스트에 나오는 Workspace 중 하나 선택
4. 프로젝트가 만들어지면 오른쪽 목차에 'OAuth & Permissions' 클릭
5. 해당 페이지 내의 Scopes 단락으로 이동
6. Bot, User 중 원하는 기능에서의 Scope(권한 범위)를 지정
- 이 권한 범위는 사용할 API에 따라 필요한 권한이 다 다름. API 문서에 필요한 권한이 기재되어있음.
- 지금은 메시지 삭제이기 때문에 메시지 히스토리 가져올 수 있는 권한과 삭제에 필요한 권한 등록
권한 : 상황에 맞게 최소 4개 중 하나 필요
- channels:history
- groups:history
- im:history
- mpim:history
필요 권한 : 아래의 권한 중 필요에 따라 적용
- chat:write
- chat:write:user
- chat:write:bot
7. 권한 지정 후 동일 페이지 OAuth Tokens for Your Workspace 단락 이동
Install to Workspace 클릭
이 때 나오는 토큰 복사
8. 해당 토큰을 이용하여 코드 테스트
대화방 ID는 브라우저 상의 Slack 대화방에 들어가면 아래와 같은 URL로 구성되어 있는데
https://app.slack.com/client/T1111AAA1AA/B22B222BB22
B22B222BB22 이 부분이 대화방 ID에 해당하는 부분
대화방 오른쪽 사이드 바 쪽의 대화방 명의 마우스 오른쪽 버튼을 눌러서 '링크 복사'를 통해서도 대화방 ID 확인 가능
import certifi
import ssl
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
ssl_context = ssl.create_default_context(cafile=certifi.where())
client = WebClient(token='xoxp-1111111111111-2222222222222-3333333333333-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', ssl=ssl_context) # 토큰을 여기에 복사
conversation_history = []
channel_id = "A11AAAA1AAA" # 대화방 ID
# Get converstaion history
try:
result = client.conversations_history(channel=channel_id)
conversation_history = result["messages"]
print("{} messages found in {}".format(len(conversation_history), id))
except SlackApiError as e:
print("Error creating conversation: {}".format(e))
# Delete conversation
user = 'B22BB2BB2BB' # 대화 삭제 대상의 사용자 ID : 위 대화 히스토리를 출력해보면 해당 사용자 ID를 확인해볼 수 있음.
for message in conversation_history: # 반복문을 통해 해당 ID의 대화 삭제 (대화 상대편의 메시지는 삭제 불가)
print(message['ts'])
try:
if message['user'] == user:
result = client.chat_delete(
channel=channel_id,
ts=message['ts']
)
print(result)
except SlackApiError as e:
pass
'Python' 카테고리의 다른 글
Python GIL (Global interpreter lock) (1) | 2023.07.10 |
---|