質問するログイン新規登録

質問編集履歴

2

open()の記述方法について編集したことを追記

2021/10/05 04:11

投稿

hagiohagi
hagiohagi

スコア2

title CHANGED
File without changes
body CHANGED
@@ -23,7 +23,7 @@
23
23
  f.read()
24
24
  f.close()
25
25
 
26
- files = {'file': open('/tmp/AmazontoSlack.txt', 'rb')}
26
+ files = {'file': open('/tmp/Slack.txt', 'rb')}
27
27
 
28
28
  response = requests.post(url="https://slack.com/api/files.upload", params=data, files=files)
29
29
  print(response.text)
@@ -54,4 +54,17 @@
54
54
  許可されるIPアドレス範囲の設定は初期(何も設定していない)状態にしております。
55
55
 
56
56
  IPアドレスの許可設定はどの状態が最適解なのか、それとも他のところに原因があるのでしょうか。
57
- 考えられる原因と解決策をご存知でしたら教えていただけると有り難いです。
57
+ 考えられる原因と解決策をご存知でしたら教えていただけると有り難いです。
58
+
59
+ 〜〜〜〜〜
60
+
61
+ 追記(2021.10.05)
62
+ curlがフォームデータ、lambdaがJSONデータとして投稿していたので、JSON形式に問題があるかと思いmultipart-formを利用して、以下のように編集しました。
63
+ ```
64
+ 編集前
65
+ files = {'file': open('/tmp/Slack.txt', 'rb')}
66
+ 編集後
67
+ file_name = open('/tmp/Slack.txt', 'rb')
68
+ files = {'file': ('Slack.txt', file_name, 'text/plain')}
69
+ ```
70
+ しかしながら、挙動に変化は無く、また別の原因を探している所です。

1

(編集)恥ずかしながら、Markdown記法で'と`を間違えましたので修正しました

2021/10/05 04:11

投稿

hagiohagi
hagiohagi

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  AWS Lambdaを利用して、変数dialogsに格納された文字列をテキストファイルにしてSlackに投稿する機能を実装したいと考えております。
2
2
  ランタイムはPython3.8で、コードは以下の通りです。
3
3
 
4
- '''
4
+ ```
5
5
  import os
6
6
  import requests
7
7
 
@@ -27,16 +27,16 @@
27
27
 
28
28
  response = requests.post(url="https://slack.com/api/files.upload", params=data, files=files)
29
29
  print(response.text)
30
- '''
30
+ ```
31
31
  ログを確認し、response.textの値を見ていると以下のようにエラーが表示されていました。
32
- '''
32
+ ```
33
33
  {
34
34
  "ok": false,
35
35
  "error": "invalid_auth"
36
36
  }
37
- '''
37
+ ```
38
38
  トークンの値が間違っていたのかと疑っていたのですが、同じトークンの値を使ってローカル環境でcurlコマンドを実行した場合は処理が成功しました。
39
- '''
39
+ ```
40
40
  %curl --request POST \
41
41
  --form channels=XXXXXXXXXXXX(環境変数SLACK_CHANNELと同じ値) \
42
42
  --form token=xoxb-XXXXXXXXXXXX-XXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXX(環境変数SLACK_TOKENと同じ値) \
@@ -46,7 +46,7 @@
46
46
  https://slack.com/api/files.upload
47
47
 
48
48
  {"ok":true,"file":{"id":……(以下ステータス情報が続く)
49
- '''
49
+ ```
50
50
  [https://api.slack.com/methods/files.upload](https://api.slack.com/methods/files.upload)
51
51
  エラーコードの原因を調べると、「認証の一部の側面を検証できません。提供されたトークンが無効であるか、要求が要求の実行を許可されていないIPアドレスから発信されています。」と書かれています。
52
52