回答編集履歴

9

追記

2023/09/20 13:41

投稿

退会済みユーザー
test CHANGED
@@ -44,7 +44,8 @@
44
44
  ```
45
45
 
46
46
  # ファイルの送信とメッセージ投稿を一発で行う方法
47
+ =>channelsにチャンネルを記述&initial_commentを追加する。
47
- [https://slack.com/api/files.upload エンドポイントを使う。](https://api.slack.com/methods/files.upload)
48
+ https://api.slack.com/methods/files.upload
48
49
 
49
50
  ```py
50
51
  import requests

8

追記

2023/09/20 13:37

投稿

退会済みユーザー
test CHANGED
@@ -43,4 +43,33 @@
43
43
  print('log:メッセージ送信完了')
44
44
  ```
45
45
 
46
+ # ファイルの送信とメッセージ投稿を一発で行う方法
47
+ [https://slack.com/api/files.upload エンドポイントを使う。](https://api.slack.com/methods/files.upload)
46
48
 
49
+ ```py
50
+ import requests
51
+
52
+ TOKEN = "@SLACK-BOT-TOKEN"
53
+ CHANNEL = "test"
54
+ url = "https://slack.com/api/files.upload"
55
+
56
+ files = {'file': open( r'@DirPath\test.csv','br')}
57
+ filename = 'test.csv'
58
+ headers = {"Authorization": "Bearer " + TOKEN}
59
+ initial_comment = 'ファイルをアップロードしました。'
60
+ data = {
61
+ 'channels' : CHANNEL,
62
+ 'filename' : filename,
63
+ 'initial_comment' : initial_comment
64
+ }
65
+
66
+ r = requests.post(url="https://slack.com/api/files.upload", headers=headers, data=data,
67
+ files=files, timeout=10)
68
+ response = r.json()
69
+ if not response['ok']:
70
+ print('ファイルのアップロードに失敗しました:'+response.get('error',''))
71
+ else:
72
+ print('log:アップロード成功。')
73
+ ```
74
+
75
+

7

2023/09/20 13:08

投稿

退会済みユーザー
test CHANGED
@@ -24,7 +24,7 @@
24
24
  else:
25
25
  print('log:ファイルアップロード成功')
26
26
  upload_done_message = ('ファイルをアップロードしました。ダウンロードリンクはこちら:'
27
- + r.json()['file']['permalink'])
27
+ + response['file']['permalink'])
28
28
 
29
29
  r = requests.post(
30
30
  'https://slack.com/api/chat.postMessage',

6

2023/09/20 13:02

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,5 @@
1
1
  **ファイルのアップロードとメッセージの送信は全く別ものです**。
2
- アップロードに成功しても自動でメッセージが投稿されるわけではないので、ファイルのアップロード後にメッセージを送信する処理も書かないといけません。
2
+ アップロードに成功しても自動でメッセージが投稿されるわけではないので、ファイルのアップロード後にメッセージを送信ないといけません。
3
3
 
4
4
  ```py
5
5
  import requests

5

2023/09/20 13:02

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,5 @@
1
1
  **ファイルのアップロードとメッセージの送信は全く別ものです**。
2
- 全く当たり前の話ですが、アップロードに成功したことをslack通知したなら、ファイルのアップロード成功後にメッセージを通知する処理書かないといけません。
2
+ アップロードに成功しても自動メッセージが投稿されるわけではなので、ファイルのアップロード後にメッセージを送信する処理書かないといけません。
3
3
 
4
4
  ```py
5
5
  import requests

4

xc

2023/09/20 13:01

投稿

退会済みユーザー
test CHANGED
@@ -1,7 +1,6 @@
1
1
  **ファイルのアップロードとメッセージの送信は全く別ものです**。
2
2
  全く当たり前の話ですが、アップロードに成功したことをslackで通知したいなら、ファイルのアップロード成功後にメッセージを通知する処理を書かないといけません。
3
- レスポンスにアップロードしたファイルのダウンロードリンクが含まれているので、通常ならメッセージにそのリンクを含めますよね。
3
+
4
- (ただアップロードに成功したよ~って言われても、「じゃあファイルどこよ」って話になる)
5
4
  ```py
6
5
  import requests
7
6
 

3

2023/09/20 13:00

投稿

退会済みユーザー
test CHANGED
@@ -23,9 +23,9 @@
23
23
  if not response['ok']:
24
24
  print('ファイルのアップロードに失敗しました:'+response.get('error',''))
25
25
  else:
26
+ print('log:ファイルアップロード成功')
26
27
  upload_done_message = ('ファイルをアップロードしました。ダウンロードリンクはこちら:'
27
28
  + r.json()['file']['permalink'])
28
- print('log:ファイル送信完了')
29
29
 
30
30
  r = requests.post(
31
31
  'https://slack.com/api/chat.postMessage',

2

2023/09/20 12:57

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,7 @@
1
1
  **ファイルのアップロードとメッセージの送信は全く別ものです**。
2
2
  全く当たり前の話ですが、アップロードに成功したことをslackで通知したいなら、ファイルのアップロード成功後にメッセージを通知する処理を書かないといけません。
3
-
3
+ レスポンスにアップロードしたファイルのダウンロードリンクが含まれているので、通常ならメッセージにそのリンクを含めますよね。
4
+ (ただアップロードに成功したよ~って言われても、「じゃあファイルどこよ」って話になる)
4
5
  ```py
5
6
  import requests
6
7
 

1

r

2023/09/20 12:54

投稿

退会済みユーザー
test CHANGED
@@ -18,12 +18,14 @@
18
18
 
19
19
  r = requests.post(url=url, headers=headers, data=data, files=files,timeout=10)
20
20
  response = r.json()
21
+
21
22
  if not response['ok']:
22
23
  print('ファイルのアップロードに失敗しました:'+response.get('error',''))
23
24
  else:
24
25
  upload_done_message = ('ファイルをアップロードしました。ダウンロードリンクはこちら:'
25
26
  + r.json()['file']['permalink'])
26
27
  print('log:ファイル送信完了')
28
+
27
29
  r = requests.post(
28
30
  'https://slack.com/api/chat.postMessage',
29
31
  headers=headers,