やりたいこと
pythonにてslack apiを使って特定チャンネルにファイルをアップロードしたい
不明点
authテストOKなのに、POSTの結果invalid_authとなる。
ちなみに同じuser tokenとchannel idでメッセージの送信は成功しています。
slack api auth test:OK
{
"ok": true,
"url": "https://****.slack.com/",
"team": "****",
"user": "****",
"team_id": "****",
"user_id": "****",
"is_enterprise_install": false
}
OAuth & PermissionsのScopes設定
コード(ファイルアップロード)
python
1import requests 2import glob 3 4token = "OAuth Tokens for Your Workspaceに記載のUser OAuth Token" 5channel_id = "conversations.list(https://api.slack.com/methods/conversations.list/test)で調べたchannel id" 6 7src_dir = glob.glob("絶対パスでフォルダ指定") 8for path in src_dir: 9 print(path) #/Users/admin/***/*** 10 11url = "https://slack.com/api/files.upload" 12params = { 13 'token': token, 14 'channels': channel_id #'filename'、initial_comment'、'title'の有無によらずエラー 15} 16files = {'file': open(path, 'rb')} 17r = requests.post(url, params=params, files=files) 18print("return ", r.json())
レスポンス
python
1return {'ok': False, 'error': 'invalid_auth'}
開発環境
M1 mac BigSur 11.4
anaconda-JupyterLab-python3.8.8
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。