Slack api bot token(?), app channel add 오류
import pandas as pd
import requests
from datetime import datetime, timedelta
df = pd.DataFrame(df_day)
df.index = range(1, len(df) + 1)
def send_slack_dataframe_with_grid(api_token, channel, dataframe, message=None):
url = "https://slack.com/api/chat.postMessage"
headers = {
"Authorization": f"Bearer {api_token}",
"Content-Type": "application/json"
}
code_block = f"```\n{dataframe}\n```"
if message:
payload = {
"channel": channel,
"text": f"{message}\n{code_block}"
}
else:
payload = {
"channel": channel,
"text": code_block
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
df = pd.DataFrame(df_day)
yesterday = datetime.now() - timedelta(days=1)
yesterday_str = yesterday.strftime('%Y-%m-%d')
api_token = "토큰값"
channel = "#채널명"
message = yesterday_str
send_slack_dataframe_with_grid(api_token, channel, df, message=message)
문제 :
새로운 slack bot 을 채널에 install 해도 제대로 값이 안보내짐
결과값:
{'ok': False, 'error': 'not_in_channel', 'warning': 'missing_charset', 'response_metadata': {'warnings': ['missing_charset']}}
해결방법 상세:
https://api.slack.com/apps/A053WAXBF1R/oauth?success=1
Slack bot 권한 설정 방법
Slack 앱 생성:
1.1. Slack API 사이트로 이동합니다.
1.2. "Start Building" 또는 "Create an App"을 클릭하여 새로운 앱을 생성합니다.
1.3. 앱 이름을 입력하고 워크스페이스를 선택한 후 "Create App"을 클릭합니다.
앱에 권한 추가:
2.1. 생성된 앱의 설정 페이지에서 왼쪽 메뉴에서 "OAuth & Permissions"를 선택합니다.
2.2. "Scopes" 섹션의 "Bot Token Scopes"에서 "Add an OAuth Scope"를 클릭합니다.
2.3. "chat:write" 권한을 추가하여 봇이 메시지를 보낼 수 있게 합니다.
앱 설치 및 API 토큰 가져오기:
3.1. "OAuth & Permissions" 페이지 상단에 있는 "Install App"을 클릭합니다.
3.2. 설치를 완료하면 "Bot User OAuth Token"이 생성됩니다. 이 토큰을 사용하여 API를 호출할 수 있습니다.
위 단계를 거치면 최소한의 준비가 끝나는데,
여러번 재설치 해도, 계속 같은 오류가 발생하였다.
Slack api 설정 페이지에서 아무리 해도 안되었다.
채널 페이지에서 직접 사용자를 추가 시켜야한다.
( 채널에 이 앱 추가...) 선택시
이런 창으로 채널에 직접 추가시켜야함.
저렇게 추가된 뒤에는 잘 전송됨.