teratail header banner
teratail header banner
質問するログイン新規登録
Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

解決済

1回答

1270閲覧

PythonからSlackにアクセスしようとするとBot User OAuth Tokenのキーが違うというエラーが発生ます。

shimamura999

総合スコア13

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

0クリップ

投稿2022/10/27 10:15

0

0

前提

こんにちは

現在PythonからSlackにアクセスしようとしています。

Bot User OAuth TokenのキーがちがうとKeyErrorが発生してしています。
https://api.slack.com/で作成したBot User OAuth Tokenを貼り付けています。

サンプルにしているソースはこちらになります。
Python で Slack API や Webhook を扱うなら公式 SDK(slack-sdk/slack-bolt)を使おう
https://qiita.com/seratch/items/8f93fd0bf815b0b1d557

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • ▲▲Pythonからslackにアクセスしたいです。

発生している問題・エラーメッセージ

エラーメッセージ KeyError

該当のソースコード

from cmath import e
from contextlib import nullcontext
import os
import sys

SLACK_API_TOKEN='xoxb-ダミー'

from slack_sdk.web import WebClient

client = WebClient()

try:
client = WebClient(token=os.environ[SLACK_API_TOKEN])
except KeyError as e:
# KeyErrorが発生した場合の処理
print('No such key テスト')
print(e)
sys.exit(1)

response = client.auth_test()
print(response)

Python

試したこと


slack のapiを作り直しました。

サンプルが以下のように記載されていたので
your own tokenにキーを貼り付けてみた。
{}を除外してみました。

export SLACK_API_TOKEN='xoxb-{your own token}'

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2022/10/27 11:58

環境変数 SLACK_API_TOKEN は登録されていますか?
shimamura999

2022/10/27 12:06

CHERRYさん コメントありがとうございます。 環境変数としては定義していなかったです。 ソースに直書きして SLACK_API_TOKEN='xoxb-ダミー' としていました。 export で設定する形でよろしいでしょうか? export SLACK_API_TOKEN='xoxb-{your own token}'
CHERRY

2022/10/27 12:37

通常の Linux 等の unix 系であれば問題ないと思います。 環境によっては、heroku のように専用コマンドで登録する必要がある場合もあります。
shimamura999

2022/10/27 12:42

CHERRYさん ありがとうございます。 大変参考になりました。
guest

回答1

0

自己解決

CHERRYさん ありがとうございます。
解決できました。

os.environで定義していたので環境変数を読み込まないとだめですね。
一人カタカタやっているとなかなかミスに気付かないものですね。

ご指摘ありがとうございます。

from cmath import e
from contextlib import nullcontext
import os
import sys

os.environ['SLACK_API_TOKEN'] = 'xoxb-xxxxx'

from slack_sdk.web import WebClient

client = WebClient()

try:
client = WebClient(token=os.environ["SLACK_API_TOKEN"])
except KeyError as e:
# KeyErrorが発生した場合の処理
print('No such key テスト')
print(e)
sys.exit(1)

投稿2022/10/27 12:28

shimamura999

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問